﻿using System;
using System.Buffers.Binary;

namespace DSInternals.Common.Schema
{
    public static class AttributeTypeExtensions
    {
        public static AttributeSyntax? GetSyntax(this AttributeType attrtyp) => attrtyp switch
        {
            AttributeType.RDN => AttributeSyntax.UnicodeString,
            AttributeType.SamAccountName => AttributeSyntax.UnicodeString,
            AttributeType.SamAccountType => AttributeSyntax.Int,
            AttributeType.IsDeleted => AttributeSyntax.Bool,
            AttributeType.SidHistory => AttributeSyntax.Sid,
            AttributeType.Description => AttributeSyntax.UnicodeString,
            AttributeType.UserAccountControl => AttributeSyntax.Int,
            AttributeType.LastLogon => AttributeSyntax.Int64,
            AttributeType.PasswordLastSet => AttributeSyntax.Int64,
            AttributeType.LastLogonTimestamp => AttributeSyntax.Int64,
            AttributeType.UserPrincipalName => AttributeSyntax.UnicodeString,
            AttributeType.PrimaryGroupId => AttributeSyntax.Int,
            AttributeType.SecurityDescriptor => AttributeSyntax.SecurityDescriptor,
            AttributeType.AdminCount => AttributeSyntax.Int,
            AttributeType.ServicePrincipalName => AttributeSyntax.String,
            AttributeType.KeyCredentialLink => AttributeSyntax.DNWithBinary,
            AttributeType.SupportedEncryptionTypes => AttributeSyntax.Int,
            AttributeType.WhenChanged => AttributeSyntax.Int64,
            AttributeType.WhenCreated => AttributeSyntax.Int64,
            AttributeType.NTHash => AttributeSyntax.OctetString,
            AttributeType.NTHashHistory => AttributeSyntax.OctetString,
            AttributeType.LMHash => AttributeSyntax.OctetString,
            AttributeType.LMHashHistory => AttributeSyntax.OctetString,
            AttributeType.SupplementalCredentials => AttributeSyntax.OctetString,
            AttributeType.CurrentValue => AttributeSyntax.OctetString,
            AttributeType.PKIRoamingTimeStamp => AttributeSyntax.OctetString,
            AttributeType.PKIDPAPIMasterKeys => AttributeSyntax.DNWithBinary,
            AttributeType.PKIAccountCredentials => AttributeSyntax.DNWithBinary,
            AttributeType.DisplayName => AttributeSyntax.UnicodeString,
            AttributeType.GivenName => AttributeSyntax.UnicodeString,
            AttributeType.Surname => AttributeSyntax.UnicodeString,
            AttributeType.Initials => AttributeSyntax.UnicodeString,
            AttributeType.EmployeeId => AttributeSyntax.UnicodeString,
            AttributeType.EmployeeNumber => AttributeSyntax.UnicodeString,
            AttributeType.Office => AttributeSyntax.UnicodeString,
            AttributeType.TelephoneNumber => AttributeSyntax.UnicodeString,
            AttributeType.EmailAddresses => AttributeSyntax.UnicodeString,
            AttributeType.PhoneHomePrimary => AttributeSyntax.UnicodeString,
            AttributeType.PhonePagerPrimary => AttributeSyntax.UnicodeString,
            AttributeType.PhoneMobilePrimary => AttributeSyntax.UnicodeString,
            AttributeType.PhoneIpPrimary => AttributeSyntax.UnicodeString,
            AttributeType.WebPage => AttributeSyntax.UnicodeString,
            AttributeType.JobTitle => AttributeSyntax.UnicodeString,
            AttributeType.Department => AttributeSyntax.UnicodeString,
            AttributeType.Company => AttributeSyntax.UnicodeString,
            AttributeType.HomeDirectory => AttributeSyntax.UnicodeString,
            AttributeType.HomeDrive => AttributeSyntax.UnicodeString,
            AttributeType.UnixHomeDirectory => AttributeSyntax.String,
            AttributeType.ProfilePath => AttributeSyntax.UnicodeString,
            AttributeType.ScriptPath => AttributeSyntax.UnicodeString,
            AttributeType.State => AttributeSyntax.UnicodeString,
            AttributeType.Street => AttributeSyntax.UnicodeString,
            AttributeType.PostOfficeBox => AttributeSyntax.UnicodeString,
            AttributeType.City => AttributeSyntax.UnicodeString,
            AttributeType.PostalCode => AttributeSyntax.UnicodeString,
            AttributeType.Country => AttributeSyntax.UnicodeString,
            AttributeType.Comment => AttributeSyntax.UnicodeString,
            AttributeType.Manager => AttributeSyntax.DN,
            AttributeType.ManagedBy => AttributeSyntax.DN,
            AttributeType.Location => AttributeSyntax.UnicodeString,
            AttributeType.OperatingSystemName => AttributeSyntax.UnicodeString,
            AttributeType.OperatingSystemVersion => AttributeSyntax.UnicodeString,
            AttributeType.OperatingSystemHotfix => AttributeSyntax.UnicodeString,
            AttributeType.OperatingSystemServicePack => AttributeSyntax.UnicodeString,
            AttributeType.DnsHostName => AttributeSyntax.UnicodeString,
            AttributeType.AccountExpires => AttributeSyntax.Int64,
            AttributeType.AccountNameHistory => AttributeSyntax.UnicodeString,
            AttributeType.ACSAggregateTokenRatePerUser => AttributeSyntax.Int64,
            AttributeType.ACSAllocableRSVPBandwidth => AttributeSyntax.Int64,
            AttributeType.ACSCacheTimeout => AttributeSyntax.Int,
            AttributeType.ACSDirection => AttributeSyntax.Int,
            AttributeType.ACSDSBMDeadTime => AttributeSyntax.Int,
            AttributeType.ACSDSBMPriority => AttributeSyntax.Int,
            AttributeType.ACSDSBMRefresh => AttributeSyntax.Int,
            AttributeType.ACSEnableACSService => AttributeSyntax.Bool,
            AttributeType.ACSEnableRSVPAccounting => AttributeSyntax.Bool,
            AttributeType.ACSEnableRSVPMessageLogging => AttributeSyntax.Bool,
            AttributeType.ACSEventLogLevel => AttributeSyntax.Int,
            AttributeType.ACSIdentityName => AttributeSyntax.UnicodeString,
            AttributeType.ACSMaxAggregatePeakRatePerUser => AttributeSyntax.Int64,
            AttributeType.ACSMaxDurationPerFlow => AttributeSyntax.Int,
            AttributeType.ACSMaxNoOfAccountFiles => AttributeSyntax.Int,
            AttributeType.ACSMaxNoOfLogFiles => AttributeSyntax.Int,
            AttributeType.ACSMaxPeakBandwidth => AttributeSyntax.Int64,
            AttributeType.ACSMaxPeakBandwidthPerFlow => AttributeSyntax.Int64,
            AttributeType.ACSMaxSizeOfRSVPAccountFile => AttributeSyntax.Int,
            AttributeType.ACSMaxSizeOfRSVPLogFile => AttributeSyntax.Int,
            AttributeType.ACSMaxTokenBucketPerFlow => AttributeSyntax.Int64,
            AttributeType.ACSMaxTokenRatePerFlow => AttributeSyntax.Int64,
            AttributeType.ACSMaximumSDUSize => AttributeSyntax.Int64,
            AttributeType.ACSMinimumDelayVariation => AttributeSyntax.Int64,
            AttributeType.ACSMinimumLatency => AttributeSyntax.Int64,
            AttributeType.ACSMinimumPolicedSize => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedMaxSDUSize => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedMinPolicedSize => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedPeakRate => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedTokenSize => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedTxLimit => AttributeSyntax.Int64,
            AttributeType.ACSNonReservedTxSize => AttributeSyntax.Int64,
            AttributeType.ACSPermissionBits => AttributeSyntax.Int64,
            AttributeType.ACSPolicyName => AttributeSyntax.UnicodeString,
            AttributeType.ACSPriority => AttributeSyntax.Int,
            AttributeType.ACSRSVPAccountFilesLocation => AttributeSyntax.UnicodeString,
            AttributeType.ACSRSVPLogFilesLocation => AttributeSyntax.UnicodeString,
            AttributeType.ACSServiceType => AttributeSyntax.Int,
            AttributeType.ACSTimeOfDay => AttributeSyntax.UnicodeString,
            AttributeType.ACSTotalNoOfFlows => AttributeSyntax.Int,
            AttributeType.ACSServerList => AttributeSyntax.UnicodeString,
            AttributeType.AdditionalInformation => AttributeSyntax.UnicodeString,
            AttributeType.AdditionalTrustedServiceNames => AttributeSyntax.UnicodeString,
            AttributeType.StreetAddress => AttributeSyntax.UnicodeString,
            AttributeType.AddressBookRoots => AttributeSyntax.DN,
            AttributeType.AddressEntryDisplayTable => AttributeSyntax.OctetString,
            AttributeType.AddressEntryDisplayTableMSDOS => AttributeSyntax.OctetString,
            AttributeType.AddressHome => AttributeSyntax.UnicodeString,
            AttributeType.AddressSyntax => AttributeSyntax.OctetString,
            AttributeType.AddressType => AttributeSyntax.CaseIgnoreString,
            AttributeType.AdminContextMenu => AttributeSyntax.UnicodeString,
            AttributeType.AdminDescription => AttributeSyntax.UnicodeString,
            AttributeType.AdminDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.AdminMultiselectPropertyPages => AttributeSyntax.UnicodeString,
            AttributeType.AdminPropertyPages => AttributeSyntax.UnicodeString,
            AttributeType.AltSecurityIdentities => AttributeSyntax.UnicodeString,
            AttributeType.AppSchemaVersion => AttributeSyntax.Int,
            AttributeType.ApplicationName => AttributeSyntax.UnicodeString,
            AttributeType.AppliesTo => AttributeSyntax.UnicodeString,
            AttributeType.AssetNumber => AttributeSyntax.UnicodeString,
            AttributeType.Assistant => AttributeSyntax.DN,
            AttributeType.AssocNTAccount => AttributeSyntax.OctetString,
            AttributeType.AssociatedDomain => AttributeSyntax.String,
            AttributeType.AssociatedName => AttributeSyntax.DN,
            AttributeType.AttributeCertificateAttribute => AttributeSyntax.OctetString,
            AttributeType.AttributeDisplayNames => AttributeSyntax.UnicodeString,
            AttributeType.AttributeId => AttributeSyntax.Oid,
            AttributeType.AttributeSecurityGuid => AttributeSyntax.OctetString,
            AttributeType.AttributeSyntax => AttributeSyntax.Oid,
            AttributeType.Audio => AttributeSyntax.OctetString,
            AttributeType.AuditingPolicy => AttributeSyntax.OctetString,
            AttributeType.AuthenticationOptions => AttributeSyntax.Int,
            AttributeType.AuthorityRevocationList => AttributeSyntax.OctetString,
            AttributeType.AuxiliaryClass => AttributeSyntax.Oid,
            AttributeType.BadPasswordTime => AttributeSyntax.Int64,
            AttributeType.BadPwdCount => AttributeSyntax.Int,
            AttributeType.BirthLocation => AttributeSyntax.OctetString,
            AttributeType.BridgeheadServerListBL => AttributeSyntax.DN,
            AttributeType.BridgeheadTransportList => AttributeSyntax.DN,
            AttributeType.BuildingName => AttributeSyntax.UnicodeString,
            AttributeType.BuiltinCreationTime => AttributeSyntax.Int64,
            AttributeType.BuiltinModifiedCount => AttributeSyntax.Int64,
            AttributeType.BusinessCategory => AttributeSyntax.UnicodeString,
            AttributeType.BytesPerMinute => AttributeSyntax.Int,
            AttributeType.CACertificate => AttributeSyntax.OctetString,
            AttributeType.CACertificateDN => AttributeSyntax.UnicodeString,
            AttributeType.CAConnect => AttributeSyntax.UnicodeString,
            AttributeType.CAUsages => AttributeSyntax.UnicodeString,
            AttributeType.CAWEBURL => AttributeSyntax.UnicodeString,
            AttributeType.CanUpgradeScript => AttributeSyntax.UnicodeString,
            AttributeType.CarLicense => AttributeSyntax.UnicodeString,
            AttributeType.Catalogs => AttributeSyntax.UnicodeString,
            AttributeType.Categories => AttributeSyntax.UnicodeString,
            AttributeType.CategoryId => AttributeSyntax.OctetString,
            AttributeType.CertificateAuthorityObject => AttributeSyntax.DN,
            AttributeType.CertificateRevocationList => AttributeSyntax.OctetString,
            AttributeType.CertificateTemplates => AttributeSyntax.UnicodeString,
            AttributeType.ClassDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.CodePage => AttributeSyntax.Int,
            AttributeType.COMClassId => AttributeSyntax.UnicodeString,
            AttributeType.COMCLSID => AttributeSyntax.UnicodeString,
            AttributeType.COMInterfaceId => AttributeSyntax.UnicodeString,
            AttributeType.COMOtherProgId => AttributeSyntax.UnicodeString,
            AttributeType.COMProgId => AttributeSyntax.UnicodeString,
            AttributeType.COMTreatAsClassId => AttributeSyntax.UnicodeString,
            AttributeType.COMTypelibId => AttributeSyntax.UnicodeString,
            AttributeType.COMUniqueLIBID => AttributeSyntax.UnicodeString,
            AttributeType.CommonName => AttributeSyntax.UnicodeString,
            AttributeType.ContentIndexingAllowed => AttributeSyntax.Bool,
            AttributeType.ContextMenu => AttributeSyntax.UnicodeString,
            AttributeType.ControlAccessRights => AttributeSyntax.OctetString,
            AttributeType.Cost => AttributeSyntax.Int,
            AttributeType.CountryCode => AttributeSyntax.Int,
            AttributeType.CreateDialog => AttributeSyntax.UnicodeString,
            AttributeType.CreateWizardExt => AttributeSyntax.UnicodeString,
            AttributeType.CreationTime => AttributeSyntax.Int64,
            AttributeType.CreationWizard => AttributeSyntax.UnicodeString,
            AttributeType.Creator => AttributeSyntax.UnicodeString,
            AttributeType.CRLObject => AttributeSyntax.DN,
            AttributeType.CRLPartitionedRevocationList => AttributeSyntax.OctetString,
            AttributeType.CrossCertificatePair => AttributeSyntax.OctetString,
            AttributeType.CurrentMachineId => AttributeSyntax.OctetString,
            AttributeType.CurrentLocation => AttributeSyntax.OctetString,
            AttributeType.CurrentParentCA => AttributeSyntax.DN,
            AttributeType.DefaultClassStore => AttributeSyntax.DN,
            AttributeType.DefaultGroup => AttributeSyntax.DN,
            AttributeType.DefaultHidingValue => AttributeSyntax.Bool,
            AttributeType.DefaultLocalPolicyObject => AttributeSyntax.DN,
            AttributeType.DefaultObjectCategory => AttributeSyntax.DN,
            AttributeType.DefaultPriority => AttributeSyntax.Int,
            AttributeType.DefaultSecurityDescriptor => AttributeSyntax.UnicodeString,
            AttributeType.DeltaRevocationList => AttributeSyntax.OctetString,
            AttributeType.DepartmentNumber => AttributeSyntax.UnicodeString,
            AttributeType.DesktopProfile => AttributeSyntax.UnicodeString,
            AttributeType.DestinationIndicator => AttributeSyntax.String,
            AttributeType.DHCPClasses => AttributeSyntax.OctetString,
            AttributeType.DHCPFlags => AttributeSyntax.Int64,
            AttributeType.DHCPIdentification => AttributeSyntax.UnicodeString,
            AttributeType.DHCPMask => AttributeSyntax.String,
            AttributeType.DHCPMaxKey => AttributeSyntax.Int64,
            AttributeType.DHCPObjDescription => AttributeSyntax.UnicodeString,
            AttributeType.DHCPObjName => AttributeSyntax.UnicodeString,
            AttributeType.DHCPOptions => AttributeSyntax.OctetString,
            AttributeType.DHCPProperties => AttributeSyntax.OctetString,
            AttributeType.DHCPRanges => AttributeSyntax.String,
            AttributeType.DHCPReservations => AttributeSyntax.String,
            AttributeType.DHCPServers => AttributeSyntax.String,
            AttributeType.DHCPSites => AttributeSyntax.String,
            AttributeType.DHCPState => AttributeSyntax.String,
            AttributeType.DHCPSubnets => AttributeSyntax.String,
            AttributeType.DHCPType => AttributeSyntax.Int,
            AttributeType.DHCPUniqueKey => AttributeSyntax.Int64,
            AttributeType.DHCPUpdateTime => AttributeSyntax.Int64,
            AttributeType.DisplayNamePrintable => AttributeSyntax.String,
            AttributeType.Division => AttributeSyntax.UnicodeString,
            AttributeType.SchemaLocation => AttributeSyntax.DN,
            AttributeType.DMDName => AttributeSyntax.UnicodeString,
            AttributeType.DNReferenceUpdate => AttributeSyntax.DN,
            AttributeType.DnsAllowDynamic => AttributeSyntax.Bool,
            AttributeType.DnsAllowXFR => AttributeSyntax.Bool,
            AttributeType.DnsNotifySecondaries => AttributeSyntax.Int,
            AttributeType.DnsProperty => AttributeSyntax.OctetString,
            AttributeType.DnsRecord => AttributeSyntax.OctetString,
            AttributeType.DnsRoot => AttributeSyntax.UnicodeString,
            AttributeType.DnsSecureSecondaries => AttributeSyntax.Int,
            AttributeType.DnsTombstoned => AttributeSyntax.Bool,
            AttributeType.DocumentAuthor => AttributeSyntax.DN,
            AttributeType.DocumentIdentifier => AttributeSyntax.UnicodeString,
            AttributeType.DocumentLocation => AttributeSyntax.UnicodeString,
            AttributeType.DocumentPublisher => AttributeSyntax.UnicodeString,
            AttributeType.DocumentTitle => AttributeSyntax.UnicodeString,
            AttributeType.DocumentVersion => AttributeSyntax.UnicodeString,
            AttributeType.DomainCertificateAuthorities => AttributeSyntax.DN,
            AttributeType.DomainComponent => AttributeSyntax.UnicodeString,
            AttributeType.DomainCrossRef => AttributeSyntax.DN,
            AttributeType.DomainId => AttributeSyntax.DN,
            AttributeType.DomainIdentifier => AttributeSyntax.Int,
            AttributeType.DomainPolicyObject => AttributeSyntax.DN,
            AttributeType.DomainPolicyReference => AttributeSyntax.DN,
            AttributeType.DomainReplica => AttributeSyntax.UnicodeString,
            AttributeType.DomainWidePolicy => AttributeSyntax.OctetString,
            AttributeType.Drink => AttributeSyntax.UnicodeString,
            AttributeType.DriverName => AttributeSyntax.UnicodeString,
            AttributeType.DriverVersion => AttributeSyntax.Int,
            AttributeType.DSCorePropagationData => AttributeSyntax.Time,
            AttributeType.DSHeuristics => AttributeSyntax.UnicodeString,
            AttributeType.DSUIAdminMaximum => AttributeSyntax.Int,
            AttributeType.DSUIAdminNotification => AttributeSyntax.UnicodeString,
            AttributeType.DSUIShellMaximum => AttributeSyntax.Int,
            AttributeType.DSASignature => AttributeSyntax.OctetString,
            AttributeType.DynamicLDAPServer => AttributeSyntax.DN,
            AttributeType.EFSPolicy => AttributeSyntax.OctetString,
            AttributeType.EmployeeType => AttributeSyntax.UnicodeString,
            AttributeType.Enabled => AttributeSyntax.Bool,
            AttributeType.EnabledConnection => AttributeSyntax.Bool,
            AttributeType.EnrollmentProviders => AttributeSyntax.UnicodeString,
            AttributeType.ExtendedCharsAllowed => AttributeSyntax.Bool,
            AttributeType.ExtensionName => AttributeSyntax.UnicodeString,
            AttributeType.ExtraColumns => AttributeSyntax.UnicodeString,
            AttributeType.FacsimileTelephoneNumber => AttributeSyntax.UnicodeString,
            AttributeType.FileExtPriority => AttributeSyntax.UnicodeString,
            AttributeType.Flags => AttributeSyntax.Int,
            AttributeType.FlatName => AttributeSyntax.UnicodeString,
            AttributeType.ForceLogoff => AttributeSyntax.Int64,
            AttributeType.ForeignIdentifier => AttributeSyntax.OctetString,
            AttributeType.FriendlyNames => AttributeSyntax.UnicodeString,
            AttributeType.FromServer => AttributeSyntax.DN,
            AttributeType.FrsComputerReference => AttributeSyntax.DN,
            AttributeType.FrsComputerReferenceBL => AttributeSyntax.DN,
            AttributeType.FRSControlDataCreation => AttributeSyntax.UnicodeString,
            AttributeType.FRSControlInboundBacklog => AttributeSyntax.UnicodeString,
            AttributeType.FRSControlOutboundBacklog => AttributeSyntax.UnicodeString,
            AttributeType.FRSDirectoryFilter => AttributeSyntax.UnicodeString,
            AttributeType.FRSDSPoll => AttributeSyntax.Int,
            AttributeType.FRSExtensions => AttributeSyntax.OctetString,
            AttributeType.FRSFaultCondition => AttributeSyntax.UnicodeString,
            AttributeType.FRSFileFilter => AttributeSyntax.UnicodeString,
            AttributeType.FRSFlags => AttributeSyntax.Int,
            AttributeType.FRSLevelLimit => AttributeSyntax.Int,
            AttributeType.FrsMemberReference => AttributeSyntax.DN,
            AttributeType.FrsMemberReferenceBL => AttributeSyntax.DN,
            AttributeType.FRSPartnerAuthLevel => AttributeSyntax.Int,
            AttributeType.FrsPrimaryMember => AttributeSyntax.DN,
            AttributeType.FRSReplicaSetGuid => AttributeSyntax.OctetString,
            AttributeType.FRSReplicaSetType => AttributeSyntax.Int,
            AttributeType.FRSRootPath => AttributeSyntax.UnicodeString,
            AttributeType.FRSRootSecurity => AttributeSyntax.SecurityDescriptor,
            AttributeType.FRSServiceCommand => AttributeSyntax.UnicodeString,
            AttributeType.FRSServiceCommandStatus => AttributeSyntax.UnicodeString,
            AttributeType.FRSStagingPath => AttributeSyntax.UnicodeString,
            AttributeType.FRSTimeLastCommand => AttributeSyntax.Time,
            AttributeType.FRSTimeLastConfigChange => AttributeSyntax.Time,
            AttributeType.FRSUpdateTimeout => AttributeSyntax.Int,
            AttributeType.FRSVersion => AttributeSyntax.UnicodeString,
            AttributeType.FRSVersionGuid => AttributeSyntax.OctetString,
            AttributeType.FRSWorkingPath => AttributeSyntax.UnicodeString,
            AttributeType.FSMORoleOwner => AttributeSyntax.DN,
            AttributeType.GarbageCollPeriod => AttributeSyntax.Int,
            AttributeType.GeneratedConnection => AttributeSyntax.Bool,
            AttributeType.GenerationQualifier => AttributeSyntax.UnicodeString,
            AttributeType.GlobalAddressList => AttributeSyntax.DN,
            AttributeType.GovernsId => AttributeSyntax.Oid,
            AttributeType.GPLink => AttributeSyntax.UnicodeString,
            AttributeType.GPOptions => AttributeSyntax.Int,
            AttributeType.GPCFileSysPath => AttributeSyntax.UnicodeString,
            AttributeType.GPCFunctionalityVersion => AttributeSyntax.Int,
            AttributeType.GPCMachineExtensionNames => AttributeSyntax.UnicodeString,
            AttributeType.GPCUserExtensionNames => AttributeSyntax.UnicodeString,
            AttributeType.GPCWQLFilter => AttributeSyntax.UnicodeString,
            AttributeType.GroupAttributes => AttributeSyntax.Int,
            AttributeType.GroupMembershipSAM => AttributeSyntax.OctetString,
            AttributeType.GroupPriority => AttributeSyntax.UnicodeString,
            AttributeType.GroupType => AttributeSyntax.Int,
            AttributeType.GroupstoIgnore => AttributeSyntax.UnicodeString,
            AttributeType.HasMasterNCs => AttributeSyntax.DN,
            AttributeType.HasPartialReplicaNCs => AttributeSyntax.DN,
            AttributeType.HelpData16 => AttributeSyntax.OctetString,
            AttributeType.HelpData32 => AttributeSyntax.OctetString,
            AttributeType.HelpFileName => AttributeSyntax.UnicodeString,
            AttributeType.HideFromAB => AttributeSyntax.Bool,
            AttributeType.HouseIdentifier => AttributeSyntax.UnicodeString,
            AttributeType.Host => AttributeSyntax.UnicodeString,
            AttributeType.IconPath => AttributeSyntax.UnicodeString,
            AttributeType.ImplementedCategories => AttributeSyntax.OctetString,
            AttributeType.IndexedScopes => AttributeSyntax.UnicodeString,
            AttributeType.InitialAuthIncoming => AttributeSyntax.UnicodeString,
            AttributeType.InitialAuthOutgoing => AttributeSyntax.UnicodeString,
            AttributeType.InstallUiLevel => AttributeSyntax.Int,
            AttributeType.InstanceType => AttributeSyntax.Int,
            AttributeType.InterSiteTopologyFailover => AttributeSyntax.Int,
            AttributeType.InterSiteTopologyGenerator => AttributeSyntax.DN,
            AttributeType.InterSiteTopologyRenew => AttributeSyntax.Int,
            AttributeType.InternationalISDNNumber => AttributeSyntax.NumericString,
            AttributeType.InvocationId => AttributeSyntax.OctetString,
            AttributeType.IpsecData => AttributeSyntax.OctetString,
            AttributeType.IpsecDataType => AttributeSyntax.Int,
            AttributeType.IpsecFilterReference => AttributeSyntax.DN,
            AttributeType.IpsecId => AttributeSyntax.UnicodeString,
            AttributeType.IpsecISAKMPReference => AttributeSyntax.DN,
            AttributeType.IpsecName => AttributeSyntax.UnicodeString,
            AttributeType.IPSECNegotiationPolicyAction => AttributeSyntax.UnicodeString,
            AttributeType.IpsecNegotiationPolicyReference => AttributeSyntax.DN,
            AttributeType.IPSECNegotiationPolicyType => AttributeSyntax.UnicodeString,
            AttributeType.IpsecNFAReference => AttributeSyntax.DN,
            AttributeType.IpsecOwnersReference => AttributeSyntax.DN,
            AttributeType.IpsecPolicyReference => AttributeSyntax.DN,
            AttributeType.IsCriticalSystemObject => AttributeSyntax.Bool,
            AttributeType.IsDefunct => AttributeSyntax.Bool,
            AttributeType.IsInGlobalCatalog => AttributeSyntax.Bool,
            AttributeType.IsEphemeral => AttributeSyntax.Bool,
            AttributeType.IsMemberOfDL => AttributeSyntax.DN,
            AttributeType.IsPrivilegeHolder => AttributeSyntax.DN,
            AttributeType.IsRecycled => AttributeSyntax.Bool,
            AttributeType.IsSingleValued => AttributeSyntax.Bool,
            AttributeType.JpegPhoto => AttributeSyntax.OctetString,
            AttributeType.Keywords => AttributeSyntax.UnicodeString,
            AttributeType.KnowledgeInformation => AttributeSyntax.CaseIgnoreString,
            AttributeType.LabeledUri => AttributeSyntax.UnicodeString,
            AttributeType.LastBackupRestorationTime => AttributeSyntax.Int64,
            AttributeType.LastContentIndexed => AttributeSyntax.Int64,
            AttributeType.LastKnownParent => AttributeSyntax.DN,
            AttributeType.LastLogoff => AttributeSyntax.Int64,
            AttributeType.LastSetTime => AttributeSyntax.Int64,
            AttributeType.LastUpdateSequence => AttributeSyntax.UnicodeString,
            AttributeType.LDAPAdminLimits => AttributeSyntax.UnicodeString,
            AttributeType.LdapDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.LDAPIPDenyList => AttributeSyntax.OctetString,
            AttributeType.LegacyExchangeDN => AttributeSyntax.CaseIgnoreString,
            AttributeType.LinkId => AttributeSyntax.Int,
            AttributeType.LinkTrackSecret => AttributeSyntax.OctetString,
            AttributeType.LocalPolicyFlags => AttributeSyntax.Int,
            AttributeType.LocalPolicyReference => AttributeSyntax.DN,
            AttributeType.LocaleId => AttributeSyntax.Int,
            AttributeType.LocalizedDescription => AttributeSyntax.UnicodeString,
            AttributeType.LocalizationDisplayId => AttributeSyntax.Int,
            AttributeType.LockOutObservationWindow => AttributeSyntax.Int64,
            AttributeType.LockoutDuration => AttributeSyntax.Int64,
            AttributeType.LockoutThreshold => AttributeSyntax.Int,
            AttributeType.LockoutTime => AttributeSyntax.Int64,
            AttributeType.Logo => AttributeSyntax.OctetString,
            AttributeType.LogonCount => AttributeSyntax.Int,
            AttributeType.LogonHours => AttributeSyntax.OctetString,
            AttributeType.LogonWorkstation => AttributeSyntax.OctetString,
            AttributeType.LSACreationTime => AttributeSyntax.Int64,
            AttributeType.LSAModifiedCount => AttributeSyntax.Int64,
            AttributeType.MachineArchitecture => AttributeSyntax.Int,
            AttributeType.MachinePasswordChangeInterval => AttributeSyntax.Int64,
            AttributeType.MachineRole => AttributeSyntax.Int,
            AttributeType.MachineWidePolicy => AttributeSyntax.OctetString,
            AttributeType.ManagedObjects => AttributeSyntax.DN,
            AttributeType.MapiId => AttributeSyntax.Int,
            AttributeType.MarshalledInterface => AttributeSyntax.OctetString,
            AttributeType.MasteredBy => AttributeSyntax.DN,
            AttributeType.MaximumPasswordAge => AttributeSyntax.Int64,
            AttributeType.MaximumRenewAge => AttributeSyntax.Int64,
            AttributeType.MaximumStorage => AttributeSyntax.Int64,
            AttributeType.MaximumTicketAge => AttributeSyntax.Int64,
            AttributeType.MayContain => AttributeSyntax.Oid,
            AttributeType.MeetingAdvertiseScope => AttributeSyntax.UnicodeString,
            AttributeType.MeetingApplication => AttributeSyntax.UnicodeString,
            AttributeType.MeetingBandwidth => AttributeSyntax.Int,
            AttributeType.MeetingBlob => AttributeSyntax.OctetString,
            AttributeType.MeetingContactInfo => AttributeSyntax.UnicodeString,
            AttributeType.MeetingDescription => AttributeSyntax.UnicodeString,
            AttributeType.MeetingEndTime => AttributeSyntax.Time,
            AttributeType.MeetingId => AttributeSyntax.UnicodeString,
            AttributeType.MeetingIP => AttributeSyntax.UnicodeString,
            AttributeType.MeetingIsEncrypted => AttributeSyntax.UnicodeString,
            AttributeType.MeetingKeyword => AttributeSyntax.UnicodeString,
            AttributeType.MeetingLanguage => AttributeSyntax.UnicodeString,
            AttributeType.MeetingLocation => AttributeSyntax.UnicodeString,
            AttributeType.MeetingMaxParticipants => AttributeSyntax.Int,
            AttributeType.MeetingName => AttributeSyntax.UnicodeString,
            AttributeType.MeetingOriginator => AttributeSyntax.UnicodeString,
            AttributeType.MeetingOwner => AttributeSyntax.UnicodeString,
            AttributeType.MeetingProtocol => AttributeSyntax.UnicodeString,
            AttributeType.MeetingRating => AttributeSyntax.UnicodeString,
            AttributeType.MeetingRecurrence => AttributeSyntax.UnicodeString,
            AttributeType.MeetingScope => AttributeSyntax.UnicodeString,
            AttributeType.MeetingStartTime => AttributeSyntax.Time,
            AttributeType.MeetingType => AttributeSyntax.UnicodeString,
            AttributeType.MeetingURL => AttributeSyntax.UnicodeString,
            AttributeType.Member => AttributeSyntax.DN,
            AttributeType.MHSORAddress => AttributeSyntax.UnicodeString,
            AttributeType.MinimumPasswordAge => AttributeSyntax.Int64,
            AttributeType.MinimumPasswordLength => AttributeSyntax.Int,
            AttributeType.MinimumTicketAge => AttributeSyntax.Int64,
            AttributeType.ModifiedCount => AttributeSyntax.Int64,
            AttributeType.ModifiedCountAtLastProm => AttributeSyntax.Int64,
            AttributeType.Moniker => AttributeSyntax.OctetString,
            AttributeType.MonikerDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.MoveTreeState => AttributeSyntax.OctetString,
            AttributeType.MSCOMDefaultPartitionLink => AttributeSyntax.DN,
            AttributeType.MSCOMObjectId => AttributeSyntax.OctetString,
            AttributeType.MSCOMPartitionLink => AttributeSyntax.DN,
            AttributeType.MSCOMPartitionSetLink => AttributeSyntax.DN,
            AttributeType.MSCOMUserLink => AttributeSyntax.DN,
            AttributeType.MSCOMUserPartitionSetLink => AttributeSyntax.DN,
            AttributeType.MSDRMIdentityCertificate => AttributeSyntax.OctetString,
            AttributeType.MSDSAdditionalDnsHostName => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAdditionalSamAccountName => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAllUsersTrustQuota => AttributeSyntax.Int,
            AttributeType.MSDSAllowedDNSSuffixes => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAllowedToDelegateTo => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAuthenticatedAtDC => AttributeSyntax.DN,
            AttributeType.MSDSAuthenticatedToAccountlist => AttributeSyntax.DN,
            AttributeType.MSDSAzApplicationData => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzApplicationName => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzApplicationVersion => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzBizRule => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzBizRuleLanguage => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzClassId => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzDomainTimeout => AttributeSyntax.Int,
            AttributeType.MSDSAzGenerateAudits => AttributeSyntax.Bool,
            AttributeType.MSDSAzLastImportedBizRulePath => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzLDAPQuery => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzMajorVersion => AttributeSyntax.Int,
            AttributeType.MSDSAzMinorVersion => AttributeSyntax.Int,
            AttributeType.MSDSAzOperationId => AttributeSyntax.Int,
            AttributeType.MSDSAzScopeName => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAzScriptEngineCacheMax => AttributeSyntax.Int,
            AttributeType.MSDSAzScriptTimeout => AttributeSyntax.Int,
            AttributeType.MSDSAzTaskIsRoleDefinition => AttributeSyntax.Bool,
            AttributeType.MSDSAzObjectGuid => AttributeSyntax.OctetString,
            AttributeType.MSDSAzGenericData => AttributeSyntax.UnicodeString,
            AttributeType.FunctionalLevel => AttributeSyntax.Int,
            AttributeType.MSDSByteArray => AttributeSyntax.OctetString,
            AttributeType.MSDSCachedMembership => AttributeSyntax.OctetString,
            AttributeType.MSDSCachedMembershipTimeStamp => AttributeSyntax.Int64,
            AttributeType.MSDSConsistencyGuid => AttributeSyntax.OctetString,
            AttributeType.MSDSConsistencyChildCount => AttributeSyntax.Int,
            AttributeType.MSDSCreatorSId => AttributeSyntax.Sid,
            AttributeType.MSDSDateTime => AttributeSyntax.Time,
            AttributeType.MSDSDefaultQuota => AttributeSyntax.Int,
            AttributeType.MSDSDeletedObjectLifetime => AttributeSyntax.Int,
            AttributeType.MSDSDnsRootAlias => AttributeSyntax.UnicodeString,
            AttributeType.MSDSEnabledFeature => AttributeSyntax.DN,
            AttributeType.MSDSEnabledFeatureBL => AttributeSyntax.DN,
            AttributeType.MSDSEntryTimeToDie => AttributeSyntax.Time,
            AttributeType.MSDSExecuteScriptPassword => AttributeSyntax.OctetString,
            AttributeType.MSDSExternalKey => AttributeSyntax.UnicodeString,
            AttributeType.MSDSExternalStore => AttributeSyntax.UnicodeString,
            AttributeType.MSDSOptionalFeatureGUId => AttributeSyntax.OctetString,
            AttributeType.MSDSFilterContainers => AttributeSyntax.UnicodeString,
            AttributeType.MSDSHasInstantiatedNCs => AttributeSyntax.DNWithBinary,
            AttributeType.MSDSHostServiceAccount => AttributeSyntax.DN,
            AttributeType.MSDSHostServiceAccountBL => AttributeSyntax.DN,
            AttributeType.MSDSInteger => AttributeSyntax.Int,
            AttributeType.InternalId => AttributeSyntax.Int,
            AttributeType.MSDSIsPossibleValuesPresent => AttributeSyntax.Bool,
            AttributeType.MSDSLastKnownRDN => AttributeSyntax.UnicodeString,
            AttributeType.MSDSLogonTimeSyncInterval => AttributeSyntax.Int,
            AttributeType.MSDSMasteredBy => AttributeSyntax.DN,
            AttributeType.MSDSMaximumPasswordAge => AttributeSyntax.Int64,
            AttributeType.MSDSMinimumPasswordAge => AttributeSyntax.Int64,
            AttributeType.MSDSMinimumPasswordLength => AttributeSyntax.Int,
            AttributeType.MSDSOIDToGroupLink => AttributeSyntax.DN,
            AttributeType.MSDSOIDToGroupLinkBL => AttributeSyntax.DN,
            AttributeType.MSDSPasswordHistoryLength => AttributeSyntax.Int,
            AttributeType.MSDSPasswordComplexityEnabled => AttributeSyntax.Bool,
            AttributeType.MSDSPasswordReversibleEncryptionEnabled => AttributeSyntax.Bool,
            AttributeType.MSDSLockoutObservationWindow => AttributeSyntax.Int64,
            AttributeType.MSDSLockoutDuration => AttributeSyntax.Int64,
            AttributeType.MSDSLockoutThreshold => AttributeSyntax.Int,
            AttributeType.MSDSPSOAppliesTo => AttributeSyntax.DN,
            AttributeType.MSDSPSOApplied => AttributeSyntax.DN,
            AttributeType.MSDSRequiredDomainBehaviorVersion => AttributeSyntax.Int,
            AttributeType.MSDSRequiredForestBehaviorVersion => AttributeSyntax.Int,
            AttributeType.MSDSPasswordSettingsPrecedence => AttributeSyntax.Int,
            AttributeType.MSDSMaxValues => AttributeSyntax.Int,
            AttributeType.MSDSMembersForAzRole => AttributeSyntax.DN,
            AttributeType.MSDSMembersForAzRoleBL => AttributeSyntax.DN,
            AttributeType.MSDSNCType => AttributeSyntax.Int,
            AttributeType.MSDSNonMembers => AttributeSyntax.DN,
            AttributeType.MSDSNonMembersBL => AttributeSyntax.DN,
            AttributeType.PhoneticFirstName => AttributeSyntax.UnicodeString,
            AttributeType.PhoneticLastName => AttributeSyntax.UnicodeString,
            AttributeType.PhoneticDepartment => AttributeSyntax.UnicodeString,
            AttributeType.PhoneticCompanyName => AttributeSyntax.UnicodeString,
            AttributeType.PhoneticDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.MSDSHABSeniorityIndex => AttributeSyntax.Int,
            AttributeType.MSDSPromotionSettings => AttributeSyntax.UnicodeString,
            AttributeType.MSDSTrustForestTrustInfo => AttributeSyntax.OctetString,
            AttributeType.MSDSTombstoneQuotaFactor => AttributeSyntax.Int,
            AttributeType.MSDSMachineAccountQuota => AttributeSyntax.Int,
            AttributeType.MSDSObjectReference => AttributeSyntax.DN,
            AttributeType.MSDSObjectReferenceBL => AttributeSyntax.DN,
            AttributeType.MSDSOperationsForAzRole => AttributeSyntax.DN,
            AttributeType.MSDSOperationsForAzRoleBL => AttributeSyntax.DN,
            AttributeType.MSDSOperationsForAzTask => AttributeSyntax.DN,
            AttributeType.MSDSOperationsForAzTaskBL => AttributeSyntax.DN,
            AttributeType.MSDSOtherSettings => AttributeSyntax.UnicodeString,
            AttributeType.MSDSQuotaAmount => AttributeSyntax.Int,
            AttributeType.MSDSQuotaTrustee => AttributeSyntax.Sid,
            AttributeType.MSDSNCReplicaLocations => AttributeSyntax.DN,
            AttributeType.MSDSNCROReplicaLocations => AttributeSyntax.DN,
            AttributeType.MSDSNCROReplicaLocationsBL => AttributeSyntax.DN,
            AttributeType.MSDSNonSecurityGroupExtraClasses => AttributeSyntax.UnicodeString,
            AttributeType.MSDSPerUserTrustQuota => AttributeSyntax.Int,
            AttributeType.MSDSPerUserTrustTombstonesQuota => AttributeSyntax.Int,
            AttributeType.MSDSPreferredGCSite => AttributeSyntax.DN,
            AttributeType.MSDSReplicatesNCReason => AttributeSyntax.DNWithBinary,
            AttributeType.MSDSReplicationNotifyFirstDSADelay => AttributeSyntax.Int,
            AttributeType.MSDSReplicationNotifySubsequentDSADelay => AttributeSyntax.Int,
            AttributeType.MSDSReplicationEpoch => AttributeSyntax.Int,
            AttributeType.MSDSRetiredReplNCSignatures => AttributeSyntax.OctetString,
            AttributeType.MSdsSchemaExtensions => AttributeSyntax.OctetString,
            AttributeType.MSDSSDReferenceDomain => AttributeSyntax.DN,
            AttributeType.MSDSSecurityGroupExtraClasses => AttributeSyntax.UnicodeString,
            AttributeType.MSDSSettings => AttributeSyntax.UnicodeString,
            AttributeType.SiteAffinity => AttributeSyntax.OctetString,
            AttributeType.MSDSSPNSuffixes => AttributeSyntax.UnicodeString,
            AttributeType.MSDSTasksForAzRole => AttributeSyntax.DN,
            AttributeType.MSDSTasksForAzRoleBL => AttributeSyntax.DN,
            AttributeType.MSDSTasksForAzTask => AttributeSyntax.DN,
            AttributeType.MSDSTasksForAzTaskBL => AttributeSyntax.DN,
            AttributeType.MSDSUpdateScript => AttributeSyntax.UnicodeString,
            AttributeType.MSDSSourceObjectDN => AttributeSyntax.UnicodeString,
            AttributeType.MSDSKrbTgtLink => AttributeSyntax.DN,
            AttributeType.MSDSRevealedUsers => AttributeSyntax.DNWithBinary,
            AttributeType.MSDSHasFullReplicaNCs => AttributeSyntax.DN,
            AttributeType.MSDSNeverRevealGroup => AttributeSyntax.DN,
            AttributeType.MSDSRevealOnDemandGroup => AttributeSyntax.DN,
            AttributeType.SecondaryKrbTgtNumber => AttributeSyntax.Int,
            AttributeType.MSDSRevealedDSAs => AttributeSyntax.DN,
            AttributeType.MSDSKrbTgtLinkBL => AttributeSyntax.DN,
            AttributeType.MSDSIsFullReplicaFor => AttributeSyntax.DN,
            AttributeType.MSDSIsDomainFor => AttributeSyntax.DN,
            AttributeType.MSDSIsPartialReplicaFor => AttributeSyntax.DN,
            AttributeType.MSDSLastSuccessfulInteractiveLogonTime => AttributeSyntax.Int64,
            AttributeType.MSDSLastFailedInteractiveLogonTime => AttributeSyntax.Int64,
            AttributeType.MSDSFailedInteractiveLogonCount => AttributeSyntax.Int,
            AttributeType.MSDSFailedInteractiveLogonCountAtLastSuccessfulLogon => AttributeSyntax.Int,
            AttributeType.MSDSUSNLastSyncSuccess => AttributeSyntax.Int64,
            AttributeType.MSDSValueTypeReference => AttributeSyntax.DN,
            AttributeType.MSDSValueTypeReferenceBL => AttributeSyntax.DN,
            AttributeType.MSDSOptionalFeatureFlags => AttributeSyntax.Int,
            AttributeType.MSExchAssistantName => AttributeSyntax.UnicodeString,
            AttributeType.MSExchangeHouseIdentifier => AttributeSyntax.UnicodeString,
            AttributeType.MSExchangeLabeledURI => AttributeSyntax.UnicodeString,
            AttributeType.MSExchOwnerBL => AttributeSyntax.DN,
            AttributeType.MSFRSHubMember => AttributeSyntax.DN,
            AttributeType.MSFRSTopologyPref => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRVersion => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRExtension => AttributeSyntax.OctetString,
            AttributeType.MSDFSRRootPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRRootSizeInMb => AttributeSyntax.Int64,
            AttributeType.MSDFSRStagingPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRStagingSizeInMb => AttributeSyntax.Int64,
            AttributeType.MSDFSRConflictPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRConflictSizeInMb => AttributeSyntax.Int64,
            AttributeType.MSDFSREnabled => AttributeSyntax.Bool,
            AttributeType.MSDFSRReplicationGroupType => AttributeSyntax.Int,
            AttributeType.MSDFSRTombstoneExpiryInMin => AttributeSyntax.Int,
            AttributeType.MSDFSRFileFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRDirectoryFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRSchedule => AttributeSyntax.OctetString,
            AttributeType.MSDFSRKeywords => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRFlags => AttributeSyntax.Int,
            AttributeType.MSDFSROptions => AttributeSyntax.Int,
            AttributeType.MSDFSRContentSetGuid => AttributeSyntax.OctetString,
            AttributeType.MSDFSRRdcEnabled => AttributeSyntax.Bool,
            AttributeType.MSDFSRRdcMinFileSizeInKb => AttributeSyntax.Int64,
            AttributeType.MSDFSRDfsPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRRootFence => AttributeSyntax.Int,
            AttributeType.MSDFSRReplicationGroupGuid => AttributeSyntax.OctetString,
            AttributeType.MSDFSRDfsLinkTarget => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRMemberReference => AttributeSyntax.DN,
            AttributeType.MSDFSRComputerReference => AttributeSyntax.DN,
            AttributeType.MSDFSRMemberReferenceBL => AttributeSyntax.DN,
            AttributeType.MSDFSRComputerReferenceBL => AttributeSyntax.DN,
            AttributeType.MSDFSRPriority => AttributeSyntax.Int,
            AttributeType.MSDFSRDeletedPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRDeletedSizeInMb => AttributeSyntax.Int64,
            AttributeType.MSDFSRReadOnly => AttributeSyntax.Bool,
            AttributeType.MSDFSRCachePolicy => AttributeSyntax.Int,
            AttributeType.MSDFSRMinDurationCacheInMin => AttributeSyntax.Int,
            AttributeType.MSDFSRMaxAgeInCacheInMin => AttributeSyntax.Int,
            AttributeType.FVERecoveryPassword => AttributeSyntax.UnicodeString,
            AttributeType.FVEVolumeGuid => AttributeSyntax.OctetString,
            AttributeType.FVEKeyPackage => AttributeSyntax.OctetString,
            AttributeType.FVERecoveryGuid => AttributeSyntax.OctetString,
            AttributeType.TPMOwnerInformation => AttributeSyntax.UnicodeString,
            AttributeType.MSIEEE80211Data => AttributeSyntax.OctetString,
            AttributeType.MSIEEE80211DataType => AttributeSyntax.Int,
            AttributeType.MSIEEE80211Id => AttributeSyntax.UnicodeString,
            AttributeType.MSIISFTPDir => AttributeSyntax.UnicodeString,
            AttributeType.MSIISFTPRoot => AttributeSyntax.UnicodeString,
            AttributeType.MSImagingPSPIdentifier => AttributeSyntax.OctetString,
            AttributeType.MSImagingPSPString => AttributeSyntax.UnicodeString,
            AttributeType.MSNetIEEE80211GPPolicyGuid => AttributeSyntax.UnicodeString,
            AttributeType.MSNetIEEE80211GPPolicyData => AttributeSyntax.UnicodeString,
            AttributeType.MSNetIEEE80211GPPolicyReserved => AttributeSyntax.OctetString,
            AttributeType.MSNetIEEE8023GPPolicyGuid => AttributeSyntax.UnicodeString,
            AttributeType.MSNetIEEE8023GPPolicyData => AttributeSyntax.UnicodeString,
            AttributeType.MSNetIEEE8023GPPolicyReserved => AttributeSyntax.OctetString,
            AttributeType.MSPKICertTemplateOid => AttributeSyntax.UnicodeString,
            AttributeType.MSPKICertificateApplicationPolicy => AttributeSyntax.UnicodeString,
            AttributeType.MSPKICertificateNameFlag => AttributeSyntax.Int,
            AttributeType.MSPKICertificatePolicy => AttributeSyntax.UnicodeString,
            AttributeType.PKICredentialRoamingTokens => AttributeSyntax.DNWithBinary,
            AttributeType.MSPKIEnrollmentFlag => AttributeSyntax.Int,
            AttributeType.MSPKIEnrollmentServers => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIMinimalKeySize => AttributeSyntax.Int,
            AttributeType.MSPKIOIDAttribute => AttributeSyntax.Int,
            AttributeType.MSPKIOIDCPS => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIOIDLocalizedName => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIOIDUserNotice => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIPrivateKeyFlag => AttributeSyntax.Int,
            AttributeType.MSPKISiteName => AttributeSyntax.UnicodeString,
            AttributeType.MSPKISupersedeTemplates => AttributeSyntax.UnicodeString,
            AttributeType.MSPKITemplateMinorRevision => AttributeSyntax.Int,
            AttributeType.MSPKITemplateSchemaVersion => AttributeSyntax.Int,
            AttributeType.MSPKIRAApplicationPolicies => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIRAPolicies => AttributeSyntax.UnicodeString,
            AttributeType.MSPKIRASignature => AttributeSyntax.Int,
            AttributeType.MSRRASAttribute => AttributeSyntax.UnicodeString,
            AttributeType.MSRRASVendorAttributeEntry => AttributeSyntax.UnicodeString,
            AttributeType.MSRADIUSFramedInterfaceId => AttributeSyntax.String,
            AttributeType.MSRADIUSSavedFramedInterfaceId => AttributeSyntax.String,
            AttributeType.MSRADIUSFramedIpv6Prefix => AttributeSyntax.String,
            AttributeType.MSRADIUSSavedFramedIpv6Prefix => AttributeSyntax.String,
            AttributeType.MSRADIUSFramedIpv6Route => AttributeSyntax.String,
            AttributeType.MSRADIUSSavedFramedIpv6Route => AttributeSyntax.String,
            AttributeType.MSSQLName => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLRegisteredOwner => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLContact => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLLocation => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLMemory => AttributeSyntax.Int64,
            AttributeType.MSSQLBuild => AttributeSyntax.Int,
            AttributeType.MSSQLServiceAccount => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLCharacterSet => AttributeSyntax.Int,
            AttributeType.MSSQLSortOrder => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLUnicodeSortOrder => AttributeSyntax.Int,
            AttributeType.MSSQLClustered => AttributeSyntax.Bool,
            AttributeType.MSSQLNamedPipe => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLMultiProtocol => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLSPX => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLTCPIP => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLAppleTalk => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLVines => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLStatus => AttributeSyntax.Int64,
            AttributeType.MSSQLLastUpdatedDate => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLInformationURL => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLConnectionURL => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLPublicationURL => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLGPSLatitude => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLGPSLongitude => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLGPSHeight => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLVersion => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLLanguage => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLDescription => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLType => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLInformationDirectory => AttributeSyntax.Bool,
            AttributeType.MSSQLDatabase => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLAllowAnonymousSubscription => AttributeSyntax.Bool,
            AttributeType.MSSQLAlias => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLSize => AttributeSyntax.Int64,
            AttributeType.MSSQLCreationDate => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLLastBackupDate => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLLastDiagnosticDate => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLApplications => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLKeywords => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLPublisher => AttributeSyntax.UnicodeString,
            AttributeType.MSSQLAllowKnownPullSubscription => AttributeSyntax.Bool,
            AttributeType.MSSQLAllowImmediateUpdatingSubscription => AttributeSyntax.Bool,
            AttributeType.MSSQLAllowQueuedUpdatingSubscription => AttributeSyntax.Bool,
            AttributeType.MSSQLAllowSnapshotFilesFTPDownloading => AttributeSyntax.Bool,
            AttributeType.MSSQLThirdParty => AttributeSyntax.Bool,
            AttributeType.MSTAPIConferenceBlob => AttributeSyntax.OctetString,
            AttributeType.MSTAPIIpAddress => AttributeSyntax.UnicodeString,
            AttributeType.MSTAPIProtocolId => AttributeSyntax.UnicodeString,
            AttributeType.MSTAPIUniqueIdentifier => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIAuthor => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIChangeDate => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIClass => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIClassDefinition => AttributeSyntax.UnicodeString,
            AttributeType.MSWMICreationDate => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIGenus => AttributeSyntax.Int,
            AttributeType.MSWMIId => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIintDefault => AttributeSyntax.Int,
            AttributeType.MSWMIintFlags1 => AttributeSyntax.Int,
            AttributeType.MSWMIintFlags2 => AttributeSyntax.Int,
            AttributeType.MSWMIintFlags3 => AttributeSyntax.Int,
            AttributeType.MSWMIintFlags4 => AttributeSyntax.Int,
            AttributeType.MSWMIintMax => AttributeSyntax.Int,
            AttributeType.MSWMIintMin => AttributeSyntax.Int,
            AttributeType.MSWMIintValidValues => AttributeSyntax.Int,
            AttributeType.MSWMIint8Default => AttributeSyntax.Int64,
            AttributeType.MSWMIint8Max => AttributeSyntax.Int64,
            AttributeType.MSWMIint8Min => AttributeSyntax.Int64,
            AttributeType.MSWMIint8ValidValues => AttributeSyntax.Int64,
            AttributeType.MSWMIMof => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIName => AttributeSyntax.UnicodeString,
            AttributeType.MSWMINormalizedClass => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIParm1 => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIParm2 => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIParm3 => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIParm4 => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIPropertyName => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIQuery => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIQueryLanguage => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIScopeGuid => AttributeSyntax.UnicodeString,
            AttributeType.MSWMISourceOrganization => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIstringDefault => AttributeSyntax.UnicodeString,
            AttributeType.MSWMIstringValidValues => AttributeSyntax.UnicodeString,
            AttributeType.MSWMITargetClass => AttributeSyntax.UnicodeString,
            AttributeType.MSWMITargetNameSpace => AttributeSyntax.UnicodeString,
            AttributeType.MSWMITargetObject => AttributeSyntax.OctetString,
            AttributeType.MSWMITargetPath => AttributeSyntax.UnicodeString,
            AttributeType.MSWMITargetType => AttributeSyntax.UnicodeString,
            AttributeType.MScopeId => AttributeSyntax.String,
            AttributeType.MsiFileList => AttributeSyntax.UnicodeString,
            AttributeType.MsiScript => AttributeSyntax.OctetString,
            AttributeType.MsiScriptName => AttributeSyntax.UnicodeString,
            AttributeType.MsiScriptPath => AttributeSyntax.UnicodeString,
            AttributeType.MsiScriptSize => AttributeSyntax.Int,
            AttributeType.MSMQAuthenticate => AttributeSyntax.Bool,
            AttributeType.MSMQBasePriority => AttributeSyntax.Int,
            AttributeType.MSMQComputerType => AttributeSyntax.CaseIgnoreString,
            AttributeType.MSMQComputerTypeEx => AttributeSyntax.UnicodeString,
            AttributeType.MSMQCost => AttributeSyntax.Int,
            AttributeType.MSMQCSPName => AttributeSyntax.CaseIgnoreString,
            AttributeType.MSMQDependentClientService => AttributeSyntax.Bool,
            AttributeType.MSMQDependentClientServices => AttributeSyntax.Bool,
            AttributeType.MSMQDigests => AttributeSyntax.OctetString,
            AttributeType.MSMQDigestsMig => AttributeSyntax.OctetString,
            AttributeType.MSMQDsService => AttributeSyntax.Bool,
            AttributeType.MSMQDsServices => AttributeSyntax.Bool,
            AttributeType.MSMQEncryptKey => AttributeSyntax.OctetString,
            AttributeType.MSMQForeign => AttributeSyntax.Bool,
            AttributeType.MSMQInRoutingServers => AttributeSyntax.DN,
            AttributeType.MSMQInterval1 => AttributeSyntax.Int,
            AttributeType.MSMQInterval2 => AttributeSyntax.Int,
            AttributeType.MSMQJournal => AttributeSyntax.Bool,
            AttributeType.MSMQJournalQuota => AttributeSyntax.Int,
            AttributeType.MSMQLabel => AttributeSyntax.CaseIgnoreString,
            AttributeType.MSMQLabelEx => AttributeSyntax.UnicodeString,
            AttributeType.MSMQLongLived => AttributeSyntax.Int,
            AttributeType.MSMQMigrated => AttributeSyntax.Bool,
            AttributeType.MSMQMulticastAddress => AttributeSyntax.UnicodeString,
            AttributeType.MSMQNameStyle => AttributeSyntax.Bool,
            AttributeType.MSMQNt4Flags => AttributeSyntax.Int,
            AttributeType.MSMQNt4Stub => AttributeSyntax.Int,
            AttributeType.MSMQOSType => AttributeSyntax.Int,
            AttributeType.MSMQOutRoutingServers => AttributeSyntax.DN,
            AttributeType.MSMQOwnerId => AttributeSyntax.OctetString,
            AttributeType.MSMQPrevSiteGates => AttributeSyntax.DN,
            AttributeType.MSMQPrivacyLevel => AttributeSyntax.Int,
            AttributeType.MSMQQMId => AttributeSyntax.OctetString,
            AttributeType.MSMQQueueJournalQuota => AttributeSyntax.Int,
            AttributeType.MSMQQueueNameExt => AttributeSyntax.UnicodeString,
            AttributeType.MSMQQueueQuota => AttributeSyntax.Int,
            AttributeType.MSMQQueueType => AttributeSyntax.OctetString,
            AttributeType.MSMQQuota => AttributeSyntax.Int,
            AttributeType.MSMQRecipientFormatName => AttributeSyntax.UnicodeString,
            AttributeType.MSMQRoutingService => AttributeSyntax.Bool,
            AttributeType.MSMQRoutingServices => AttributeSyntax.Bool,
            AttributeType.MSMQSecuredSource => AttributeSyntax.Bool,
            AttributeType.MSMQServiceType => AttributeSyntax.Int,
            AttributeType.MSMQServices => AttributeSyntax.Int,
            AttributeType.MSMQSignCertificates => AttributeSyntax.OctetString,
            AttributeType.MSMQSignCertificatesMig => AttributeSyntax.OctetString,
            AttributeType.MSMQSignKey => AttributeSyntax.OctetString,
            AttributeType.MSMQSite1 => AttributeSyntax.DN,
            AttributeType.MSMQSite2 => AttributeSyntax.DN,
            AttributeType.MSMQSiteForeign => AttributeSyntax.Bool,
            AttributeType.MSMQSiteGates => AttributeSyntax.DN,
            AttributeType.MSMQSiteGatesMig => AttributeSyntax.DN,
            AttributeType.MSMQSiteId => AttributeSyntax.OctetString,
            AttributeType.MSMQSiteName => AttributeSyntax.CaseIgnoreString,
            AttributeType.MSMQSiteNameEx => AttributeSyntax.UnicodeString,
            AttributeType.MSMQSites => AttributeSyntax.OctetString,
            AttributeType.MSMQTransactional => AttributeSyntax.Bool,
            AttributeType.MSMQUserSid => AttributeSyntax.OctetString,
            AttributeType.MSMQVersion => AttributeSyntax.Int,
            AttributeType.MSNPAllowDialin => AttributeSyntax.Bool,
            AttributeType.MSNPCalledStationId => AttributeSyntax.String,
            AttributeType.MSNPCallingStationId => AttributeSyntax.String,
            AttributeType.MSNPSavedCallingStationId => AttributeSyntax.String,
            AttributeType.MSRADIUSCallbackNumber => AttributeSyntax.String,
            AttributeType.MSRADIUSFramedIPAddress => AttributeSyntax.Int,
            AttributeType.MSRADIUSFramedRoute => AttributeSyntax.String,
            AttributeType.MSRADIUSServiceType => AttributeSyntax.Int,
            AttributeType.MSRASSavedCallbackNumber => AttributeSyntax.String,
            AttributeType.MSRASSavedFramedIPAddress => AttributeSyntax.Int,
            AttributeType.MSRASSavedFramedRoute => AttributeSyntax.String,
            AttributeType.MustContain => AttributeSyntax.Oid,
            AttributeType.NameServiceFlags => AttributeSyntax.Int,
            AttributeType.NamingContextName => AttributeSyntax.DN,
            AttributeType.NetBIOSName => AttributeSyntax.UnicodeString,
            AttributeType.NetbootAllowNewClients => AttributeSyntax.Bool,
            AttributeType.NetbootAnswerOnlyValidClients => AttributeSyntax.Bool,
            AttributeType.NetbootAnswerRequests => AttributeSyntax.Bool,
            AttributeType.NetbootCurrentClientCount => AttributeSyntax.Int,
            AttributeType.NetbootGuid => AttributeSyntax.OctetString,
            AttributeType.NetbootDuid => AttributeSyntax.OctetString,
            AttributeType.NetbootInitialization => AttributeSyntax.UnicodeString,
            AttributeType.NetbootIntelliMirrorOSes => AttributeSyntax.UnicodeString,
            AttributeType.NetbootLimitClients => AttributeSyntax.Bool,
            AttributeType.NetbootLocallyInstalledOSes => AttributeSyntax.UnicodeString,
            AttributeType.NetbootMachineFilePath => AttributeSyntax.UnicodeString,
            AttributeType.NetbootMaxClients => AttributeSyntax.Int,
            AttributeType.NetbootMirrorDataFile => AttributeSyntax.UnicodeString,
            AttributeType.NetbootNewMachineNamingPolicy => AttributeSyntax.UnicodeString,
            AttributeType.NetbootNewMachineOU => AttributeSyntax.DN,
            AttributeType.netbootSCPBL => AttributeSyntax.DN,
            AttributeType.netbootServer => AttributeSyntax.DN,
            AttributeType.NetbootSIFFile => AttributeSyntax.UnicodeString,
            AttributeType.NetbootTools => AttributeSyntax.UnicodeString,
            AttributeType.NetworkAddress => AttributeSyntax.CaseIgnoreString,
            AttributeType.NextLevelStore => AttributeSyntax.DN,
            AttributeType.NextRid => AttributeSyntax.Int,
            AttributeType.NonSecurityMember => AttributeSyntax.DN,
            AttributeType.NonSecurityMemberBL => AttributeSyntax.DN,
            AttributeType.NotificationList => AttributeSyntax.DN,
            AttributeType.NTGroupMembers => AttributeSyntax.OctetString,
            AttributeType.NTMixedDomain => AttributeSyntax.Int,
            AttributeType.DistinguishedName => AttributeSyntax.DN,
            AttributeType.ObjectCategory => AttributeSyntax.DN,
            AttributeType.ObjectClass => AttributeSyntax.Oid,
            AttributeType.ObjectClassCategory => AttributeSyntax.Int,
            AttributeType.ObjectCount => AttributeSyntax.Int,
            AttributeType.ObjectGuid => AttributeSyntax.OctetString,
            AttributeType.ObjectSid => AttributeSyntax.Sid,
            AttributeType.ObjectVersion => AttributeSyntax.Int,
            AttributeType.OEMInformation => AttributeSyntax.UnicodeString,
            AttributeType.OMObjectClass => AttributeSyntax.OctetString,
            AttributeType.OMSyntax => AttributeSyntax.Int,
            AttributeType.OMTGuid => AttributeSyntax.OctetString,
            AttributeType.OMTIndxGuid => AttributeSyntax.OctetString,
            AttributeType.OperatorCount => AttributeSyntax.Int,
            AttributeType.OptionDescription => AttributeSyntax.UnicodeString,
            AttributeType.Options => AttributeSyntax.Int,
            AttributeType.OptionsLocation => AttributeSyntax.String,
            AttributeType.OrganizationName => AttributeSyntax.UnicodeString,
            AttributeType.OrganizationalUnitName => AttributeSyntax.UnicodeString,
            AttributeType.OrganizationalStatus => AttributeSyntax.UnicodeString,
            AttributeType.OriginalDisplayTable => AttributeSyntax.OctetString,
            AttributeType.OriginalDisplayTableMSDOS => AttributeSyntax.OctetString,
            AttributeType.OtherLoginWorkstations => AttributeSyntax.UnicodeString,
            AttributeType.OtherMailbox => AttributeSyntax.UnicodeString,
            AttributeType.OtherName => AttributeSyntax.UnicodeString,
            AttributeType.OtherWellKnownObjects => AttributeSyntax.DNWithBinary,
            AttributeType.Owner => AttributeSyntax.DN,
            AttributeType.PackageFlags => AttributeSyntax.Int,
            AttributeType.PackageName => AttributeSyntax.UnicodeString,
            AttributeType.PackageType => AttributeSyntax.Int,
            AttributeType.ParentCA => AttributeSyntax.DN,
            AttributeType.ParentCACertificateChain => AttributeSyntax.OctetString,
            AttributeType.PartialAttributeDeletionList => AttributeSyntax.OctetString,
            AttributeType.PartialAttributeSet => AttributeSyntax.OctetString,
            AttributeType.PEKChangeInterval => AttributeSyntax.Int64,
            AttributeType.PEKList => AttributeSyntax.OctetString,
            AttributeType.PendingCACertificates => AttributeSyntax.OctetString,
            AttributeType.PendingParentCA => AttributeSyntax.DN,
            AttributeType.PerMsgDialogDisplayTable => AttributeSyntax.OctetString,
            AttributeType.PerRecipDialogDisplayTable => AttributeSyntax.OctetString,
            AttributeType.PersonalTitle => AttributeSyntax.UnicodeString,
            AttributeType.PhoneFaxOther => AttributeSyntax.UnicodeString,
            AttributeType.PhoneHomeOther => AttributeSyntax.UnicodeString,
            AttributeType.PhoneIpOther => AttributeSyntax.UnicodeString,
            AttributeType.PhoneISDNPrimary => AttributeSyntax.UnicodeString,
            AttributeType.PhoneMobileOther => AttributeSyntax.UnicodeString,
            AttributeType.PhoneOfficeOther => AttributeSyntax.UnicodeString,
            AttributeType.PhonePagerOther => AttributeSyntax.UnicodeString,
            AttributeType.Photo => AttributeSyntax.OctetString,
            AttributeType.PhysicalLocationObject => AttributeSyntax.DN,
            AttributeType.Picture => AttributeSyntax.OctetString,
            AttributeType.PKICriticalExtensions => AttributeSyntax.UnicodeString,
            AttributeType.PKIDefaultCSPs => AttributeSyntax.UnicodeString,
            AttributeType.PKIDefaultKeySpec => AttributeSyntax.Int,
            AttributeType.PKIEnrollmentAccess => AttributeSyntax.SecurityDescriptor,
            AttributeType.PKIExpirationPeriod => AttributeSyntax.OctetString,
            AttributeType.PKIExtendedKeyUsage => AttributeSyntax.UnicodeString,
            AttributeType.PKIKeyUsage => AttributeSyntax.OctetString,
            AttributeType.PKIMaxIssuingDepth => AttributeSyntax.Int,
            AttributeType.PKIOverlapPeriod => AttributeSyntax.OctetString,
            AttributeType.PKT => AttributeSyntax.OctetString,
            AttributeType.PKTGuid => AttributeSyntax.OctetString,
            AttributeType.PolicyReplicationFlags => AttributeSyntax.Int,
            AttributeType.PortName => AttributeSyntax.UnicodeString,
            AttributeType.PossibleSuperiors => AttributeSyntax.Oid,
            AttributeType.PostalAddress => AttributeSyntax.UnicodeString,
            AttributeType.PreferredDeliveryMethod => AttributeSyntax.Int,
            AttributeType.preferredLanguage => AttributeSyntax.UnicodeString,
            AttributeType.PreferredOU => AttributeSyntax.DN,
            AttributeType.PrefixMap => AttributeSyntax.OctetString,
            AttributeType.PresentationAddress => AttributeSyntax.PresentationAddress,
            AttributeType.PreviousCACertificates => AttributeSyntax.OctetString,
            AttributeType.PreviousParentCA => AttributeSyntax.DN,
            AttributeType.PrintAttributes => AttributeSyntax.Int,
            AttributeType.PrintBinNames => AttributeSyntax.UnicodeString,
            AttributeType.PrintCollate => AttributeSyntax.Bool,
            AttributeType.PrintColor => AttributeSyntax.Bool,
            AttributeType.PrintDuplexSupported => AttributeSyntax.Bool,
            AttributeType.PrintEndTime => AttributeSyntax.Int,
            AttributeType.PrintFormName => AttributeSyntax.UnicodeString,
            AttributeType.PrintKeepPrintedJobs => AttributeSyntax.Bool,
            AttributeType.PrintLanguage => AttributeSyntax.UnicodeString,
            AttributeType.PrintMACAddress => AttributeSyntax.UnicodeString,
            AttributeType.PrintMaxCopies => AttributeSyntax.Int,
            AttributeType.PrintMaxResolutionSupported => AttributeSyntax.Int,
            AttributeType.PrintMaxXExtent => AttributeSyntax.Int,
            AttributeType.PrintMaxYExtent => AttributeSyntax.Int,
            AttributeType.PrintMediaReady => AttributeSyntax.UnicodeString,
            AttributeType.PrintMediaSupported => AttributeSyntax.UnicodeString,
            AttributeType.PrintMemory => AttributeSyntax.Int,
            AttributeType.PrintMinXExtent => AttributeSyntax.Int,
            AttributeType.PrintMinYExtent => AttributeSyntax.Int,
            AttributeType.PrintNetworkAddress => AttributeSyntax.UnicodeString,
            AttributeType.PrintNotify => AttributeSyntax.UnicodeString,
            AttributeType.PrintNumberUp => AttributeSyntax.Int,
            AttributeType.PrintOrientationsSupported => AttributeSyntax.UnicodeString,
            AttributeType.PrintOwner => AttributeSyntax.UnicodeString,
            AttributeType.PrintPagesPerMinute => AttributeSyntax.Int,
            AttributeType.PrintRate => AttributeSyntax.Int,
            AttributeType.PrintRateUnit => AttributeSyntax.UnicodeString,
            AttributeType.PrintSeparatorFile => AttributeSyntax.UnicodeString,
            AttributeType.PrintShareName => AttributeSyntax.UnicodeString,
            AttributeType.PrintSpooling => AttributeSyntax.UnicodeString,
            AttributeType.PrintStaplingSupported => AttributeSyntax.Bool,
            AttributeType.PrintStartTime => AttributeSyntax.Int,
            AttributeType.PrintStatus => AttributeSyntax.UnicodeString,
            AttributeType.PrinterName => AttributeSyntax.UnicodeString,
            AttributeType.PriorSetTime => AttributeSyntax.Int64,
            AttributeType.PriorValue => AttributeSyntax.OctetString,
            AttributeType.Priority => AttributeSyntax.Int,
            AttributeType.PrivateKey => AttributeSyntax.OctetString,
            AttributeType.PrivilegeAttributes => AttributeSyntax.Int,
            AttributeType.PrivilegeDisplayName => AttributeSyntax.UnicodeString,
            AttributeType.PrivilegeHolder => AttributeSyntax.DN,
            AttributeType.PrivilegeValue => AttributeSyntax.Int64,
            AttributeType.ProductCode => AttributeSyntax.OctetString,
            AttributeType.ProxiedObjectName => AttributeSyntax.DNWithBinary,
            AttributeType.ProxyAddresses => AttributeSyntax.UnicodeString,
            AttributeType.ProxyGenerationEnabled => AttributeSyntax.Bool,
            AttributeType.ProxyLifetime => AttributeSyntax.Int64,
            AttributeType.PublicKeyPolicy => AttributeSyntax.OctetString,
            AttributeType.PurportedSearch => AttributeSyntax.UnicodeString,
            AttributeType.PasswordHistoryLength => AttributeSyntax.Int,
            AttributeType.PasswordProperties => AttributeSyntax.Int,
            AttributeType.QualityOfService => AttributeSyntax.Int,
            AttributeType.QueryFilter => AttributeSyntax.UnicodeString,
            AttributeType.QueryPolicyBL => AttributeSyntax.DN,
            AttributeType.QueryPolicyObject => AttributeSyntax.DN,
            AttributeType.QueryPoint => AttributeSyntax.UnicodeString,
            AttributeType.RangeLower => AttributeSyntax.Int,
            AttributeType.RangeUpper => AttributeSyntax.Int,
            AttributeType.RDNAttributeId => AttributeSyntax.Oid,
            AttributeType.RegisteredAddress => AttributeSyntax.OctetString,
            AttributeType.RemoteServerName => AttributeSyntax.UnicodeString,
            AttributeType.RemoteSource => AttributeSyntax.UnicodeString,
            AttributeType.RemoteSourceType => AttributeSyntax.Int,
            AttributeType.RemoteStorageGuid => AttributeSyntax.UnicodeString,
            AttributeType.ReplicationPropertyMetaData => AttributeSyntax.OctetString,
            AttributeType.ReplTopologyStayOfExecution => AttributeSyntax.Int,
            AttributeType.ReplUpToDateVector => AttributeSyntax.OctetString,
            AttributeType.ReplicaSource => AttributeSyntax.UnicodeString,
            AttributeType.Reports => AttributeSyntax.DN,
            AttributeType.ReplInterval => AttributeSyntax.Int,
            AttributeType.ReplicatesFrom => AttributeSyntax.OctetString,
            AttributeType.ReplicatesTo => AttributeSyntax.OctetString,
            AttributeType.RequiredCategories => AttributeSyntax.OctetString,
            AttributeType.RetiredReplDSASignatures => AttributeSyntax.OctetString,
            AttributeType.Revision => AttributeSyntax.Int,
            AttributeType.Rid => AttributeSyntax.Int,
            AttributeType.RidAllocationPool => AttributeSyntax.Int64,
            AttributeType.RidAvailablePool => AttributeSyntax.Int64,
            AttributeType.RidManagerReference => AttributeSyntax.DN,
            AttributeType.RidNextRid => AttributeSyntax.Int,
            AttributeType.RidPreviousAllocationPool => AttributeSyntax.Int64,
            AttributeType.RIDSetReferences => AttributeSyntax.DN,
            AttributeType.RidUsedPool => AttributeSyntax.Int64,
            AttributeType.RightsGuid => AttributeSyntax.UnicodeString,
            AttributeType.RoleOccupant => AttributeSyntax.DN,
            AttributeType.RoomNumber => AttributeSyntax.UnicodeString,
            AttributeType.RootTrust => AttributeSyntax.DN,
            AttributeType.RpcNsAnnotation => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsBindings => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsCodeset => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsEntryFlags => AttributeSyntax.Int,
            AttributeType.RpcNsGroup => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsInterfaceId => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsObjectId => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsPriority => AttributeSyntax.Int,
            AttributeType.RpcNsProfileEntry => AttributeSyntax.UnicodeString,
            AttributeType.RpcNsTransferSyntax => AttributeSyntax.UnicodeString,
            AttributeType.SamDomainUpdates => AttributeSyntax.OctetString,
            AttributeType.Schedule => AttributeSyntax.OctetString,
            AttributeType.SchemaFlagsEx => AttributeSyntax.Int,
            AttributeType.SchemaIdGuid => AttributeSyntax.OctetString,
            AttributeType.SchemaInfo => AttributeSyntax.OctetString,
            AttributeType.SchemaUpdate => AttributeSyntax.Time,
            AttributeType.SchemaVersion => AttributeSyntax.Int,
            AttributeType.ScopeFlags => AttributeSyntax.Int,
            AttributeType.SearchFlags => AttributeSyntax.Int,
            AttributeType.SearchGuide => AttributeSyntax.OctetString,
            AttributeType.Secretary => AttributeSyntax.DN,
            AttributeType.SecurityIdentifier => AttributeSyntax.Sid,
            AttributeType.SeeAlso => AttributeSyntax.DN,
            AttributeType.SeqNotification => AttributeSyntax.Int,
            AttributeType.SerialNumber => AttributeSyntax.String,
            AttributeType.ServerName => AttributeSyntax.UnicodeString,
            AttributeType.ServerReference => AttributeSyntax.DN,
            AttributeType.ServerReferenceBL => AttributeSyntax.DN,
            AttributeType.ServerRole => AttributeSyntax.Int,
            AttributeType.ServerState => AttributeSyntax.Int,
            AttributeType.ServiceBindingInformation => AttributeSyntax.UnicodeString,
            AttributeType.ServiceClassId => AttributeSyntax.OctetString,
            AttributeType.ServiceClassInfo => AttributeSyntax.OctetString,
            AttributeType.ServiceClassName => AttributeSyntax.UnicodeString,
            AttributeType.ServiceDnsName => AttributeSyntax.UnicodeString,
            AttributeType.ServiceDnsNameType => AttributeSyntax.UnicodeString,
            AttributeType.ServiceInstanceVersion => AttributeSyntax.OctetString,
            AttributeType.SetupCommand => AttributeSyntax.UnicodeString,
            AttributeType.ShellContextMenu => AttributeSyntax.UnicodeString,
            AttributeType.ShellPropertyPages => AttributeSyntax.UnicodeString,
            AttributeType.ShortServerName => AttributeSyntax.UnicodeString,
            AttributeType.ShowInAddressBook => AttributeSyntax.DN,
            AttributeType.ShowInAdvancedViewOnly => AttributeSyntax.Bool,
            AttributeType.SignatureAlgorithms => AttributeSyntax.UnicodeString,
            AttributeType.SiteGuid => AttributeSyntax.OctetString,
            AttributeType.SiteLinkList => AttributeSyntax.DN,
            AttributeType.SiteList => AttributeSyntax.DN,
            AttributeType.SiteObject => AttributeSyntax.DN,
            AttributeType.SiteObjectBL => AttributeSyntax.DN,
            AttributeType.SiteServer => AttributeSyntax.DN,
            AttributeType.SMTPMailAddress => AttributeSyntax.UnicodeString,
            AttributeType.SPNMappings => AttributeSyntax.UnicodeString,
            AttributeType.SubClassOf => AttributeSyntax.Oid,
            AttributeType.SubRefs => AttributeSyntax.DN,
            AttributeType.SuperScopeDescription => AttributeSyntax.UnicodeString,
            AttributeType.SuperScopes => AttributeSyntax.String,
            AttributeType.SuperiorDNSRoot => AttributeSyntax.UnicodeString,
            AttributeType.SupportedApplicationContext => AttributeSyntax.OctetString,
            AttributeType.SyncAttributes => AttributeSyntax.Int,
            AttributeType.SyncMembership => AttributeSyntax.DN,
            AttributeType.SyncWithObject => AttributeSyntax.DN,
            AttributeType.SyncWithSid => AttributeSyntax.Sid,
            AttributeType.SystemAuxiliaryClass => AttributeSyntax.Oid,
            AttributeType.SystemFlags => AttributeSyntax.Int,
            AttributeType.SystemMayContain => AttributeSyntax.Oid,
            AttributeType.SystemMustContain => AttributeSyntax.Oid,
            AttributeType.SystemOnly => AttributeSyntax.Bool,
            AttributeType.SystemPossSuperiors => AttributeSyntax.Oid,
            AttributeType.TeletexTerminalIdentifier => AttributeSyntax.OctetString,
            AttributeType.TelexNumber => AttributeSyntax.OctetString,
            AttributeType.TelexPrimary => AttributeSyntax.UnicodeString,
            AttributeType.TemplateRoots => AttributeSyntax.DN,
            AttributeType.TerminalServer => AttributeSyntax.OctetString,
            AttributeType.TextCountry => AttributeSyntax.UnicodeString,
            AttributeType.TextEncodedORAddress => AttributeSyntax.UnicodeString,
            AttributeType.TimeRefresh => AttributeSyntax.Int64,
            AttributeType.TimeVolumeChange => AttributeSyntax.Int64,
            AttributeType.TombstoneLifetime => AttributeSyntax.Int,
            AttributeType.TransportAddressAttribute => AttributeSyntax.Oid,
            AttributeType.TransportDLLName => AttributeSyntax.UnicodeString,
            AttributeType.TransportType => AttributeSyntax.DN,
            AttributeType.TreatAsLeaf => AttributeSyntax.Bool,
            AttributeType.TreeName => AttributeSyntax.UnicodeString,
            AttributeType.TrustAttributes => AttributeSyntax.Int,
            AttributeType.TrustAuthIncoming => AttributeSyntax.OctetString,
            AttributeType.TrustAuthOutgoing => AttributeSyntax.OctetString,
            AttributeType.TrustDirection => AttributeSyntax.Int,
            AttributeType.TrustParent => AttributeSyntax.DN,
            AttributeType.TrustPartner => AttributeSyntax.UnicodeString,
            AttributeType.TrustPosixOffset => AttributeSyntax.Int,
            AttributeType.TrustType => AttributeSyntax.Int,
            AttributeType.UASCompat => AttributeSyntax.Int,
            AttributeType.Uid => AttributeSyntax.UnicodeString,
            AttributeType.UNCName => AttributeSyntax.UnicodeString,
            AttributeType.UniqueIdentifier => AttributeSyntax.UnicodeString,
            AttributeType.UniqueMember => AttributeSyntax.DN,
            AttributeType.UnstructuredAddress => AttributeSyntax.UnicodeString,
            AttributeType.UnstructuredName => AttributeSyntax.String,
            AttributeType.UpgradeProductCode => AttributeSyntax.OctetString,
            AttributeType.UPNSuffixes => AttributeSyntax.UnicodeString,
            AttributeType.UserCert => AttributeSyntax.OctetString,
            AttributeType.UserComment => AttributeSyntax.UnicodeString,
            AttributeType.UserParameters => AttributeSyntax.UnicodeString,
            AttributeType.UserPassword => AttributeSyntax.OctetString,
            AttributeType.UserClass => AttributeSyntax.UnicodeString,
            AttributeType.UserPKCS12 => AttributeSyntax.OctetString,
            AttributeType.UserSharedFolder => AttributeSyntax.UnicodeString,
            AttributeType.UserSharedFolderOther => AttributeSyntax.UnicodeString,
            AttributeType.UserSMIMECertificate => AttributeSyntax.OctetString,
            AttributeType.UserWorkstations => AttributeSyntax.UnicodeString,
            AttributeType.USNChanged => AttributeSyntax.Int64,
            AttributeType.USNCreated => AttributeSyntax.Int64,
            AttributeType.USNDSALastObjRemoved => AttributeSyntax.Int64,
            AttributeType.USNIntersite => AttributeSyntax.Int,
            AttributeType.USNLastObjRem => AttributeSyntax.Int64,
            AttributeType.USNSource => AttributeSyntax.Int64,
            AttributeType.ValidAccesses => AttributeSyntax.Int,
            AttributeType.Vendor => AttributeSyntax.UnicodeString,
            AttributeType.VersionNumber => AttributeSyntax.Int,
            AttributeType.VersionNumberHigh => AttributeSyntax.Int,
            AttributeType.VersionNumberLow => AttributeSyntax.Int,
            AttributeType.VolumeTableGuid => AttributeSyntax.OctetString,
            AttributeType.VolumeTableIndexGuid => AttributeSyntax.OctetString,
            AttributeType.VolumeCount => AttributeSyntax.Int,
            AttributeType.WbemPath => AttributeSyntax.UnicodeString,
            AttributeType.WellKnownObjects => AttributeSyntax.DNWithBinary,
            AttributeType.WinsockAddresses => AttributeSyntax.OctetString,
            AttributeType.WWWPageOther => AttributeSyntax.UnicodeString,
            AttributeType.X121Address => AttributeSyntax.NumericString,
            AttributeType.X500uniqueIdentifier => AttributeSyntax.OctetString,
            AttributeType.X509Certificate => AttributeSyntax.OctetString,
            AttributeType.UnixUserPassword => AttributeSyntax.OctetString,
            AttributeType.UidNumber => AttributeSyntax.Int,
            AttributeType.GidNumber => AttributeSyntax.Int,
            AttributeType.Gecos => AttributeSyntax.String,
            AttributeType.LoginShell => AttributeSyntax.String,
            AttributeType.ShadowLastChange => AttributeSyntax.Int,
            AttributeType.ShadowMin => AttributeSyntax.Int,
            AttributeType.ShadowMax => AttributeSyntax.Int,
            AttributeType.ShadowWarning => AttributeSyntax.Int,
            AttributeType.ShadowInactive => AttributeSyntax.Int,
            AttributeType.ShadowExpire => AttributeSyntax.Int,
            AttributeType.ShadowFlag => AttributeSyntax.Int,
            AttributeType.MemberUid => AttributeSyntax.String,
            AttributeType.MemberNisNetgroup => AttributeSyntax.String,
            AttributeType.NisNetgroupTriple => AttributeSyntax.String,
            AttributeType.IpServicePort => AttributeSyntax.Int,
            AttributeType.IpServiceProtocol => AttributeSyntax.String,
            AttributeType.IpProtocolNumber => AttributeSyntax.Int,
            AttributeType.OncRpcNumber => AttributeSyntax.Int,
            AttributeType.IpHostNumber => AttributeSyntax.String,
            AttributeType.IpNetworkNumber => AttributeSyntax.String,
            AttributeType.IpNetmaskNumber => AttributeSyntax.String,
            AttributeType.MacAddress => AttributeSyntax.String,
            AttributeType.BootParameter => AttributeSyntax.String,
            AttributeType.BootFile => AttributeSyntax.String,
            AttributeType.NisMapName => AttributeSyntax.String,
            AttributeType.NisMapEntry => AttributeSyntax.String,
            AttributeType.MSSFU30SearchContainer => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30KeyAttributes => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30FieldSeparator => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30IntraFieldSeparator => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30SearchAttributes => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30ResultAttributes => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30MapFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30MasterServerName => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30OrderNumber => AttributeSyntax.UnicodeString,
            AttributeType.MSSFU30Name => AttributeSyntax.String,
            AttributeType.MSSFU30Aliases => AttributeSyntax.String,
            AttributeType.MSSFU30KeyValues => AttributeSyntax.String,
            AttributeType.MSSFU30NisDomain => AttributeSyntax.String,
            AttributeType.MSSFU30Domains => AttributeSyntax.String,
            AttributeType.MSSFU30YpServers => AttributeSyntax.String,
            AttributeType.MSSFU30MaxGidNumber => AttributeSyntax.Int,
            AttributeType.MSSFU30MaxUidNumber => AttributeSyntax.Int,
            AttributeType.MSSFU30NSMAPFieldPosition => AttributeSyntax.String,
            AttributeType.MSSFU30PosixMember => AttributeSyntax.DN,
            AttributeType.MSSFU30PosixMemberOf => AttributeSyntax.DN,
            AttributeType.MSSFU30NetgroupHostAtDomain => AttributeSyntax.String,
            AttributeType.MSSFU30NetgroupUserAtDomain => AttributeSyntax.String,
            AttributeType.MSSFU30IsValidContainer => AttributeSyntax.Int,
            AttributeType.MSSFU30CryptMethod => AttributeSyntax.String,
            AttributeType.MSTSProfilePath => AttributeSyntax.UnicodeString,
            AttributeType.MSTSHomeDirectory => AttributeSyntax.UnicodeString,
            AttributeType.MSTSHomeDrive => AttributeSyntax.UnicodeString,
            AttributeType.MSTSAllowLogon => AttributeSyntax.Bool,
            AttributeType.MSTSRemoteControl => AttributeSyntax.Int,
            AttributeType.MSTSMaxDisconnectionTime => AttributeSyntax.Int,
            AttributeType.MSTSMaxConnectionTime => AttributeSyntax.Int,
            AttributeType.MSTSMaxIdleTime => AttributeSyntax.Int,
            AttributeType.MSTSReconnectionAction => AttributeSyntax.Bool,
            AttributeType.MSTSBrokenConnectionAction => AttributeSyntax.Bool,
            AttributeType.MSTSConnectClientDrives => AttributeSyntax.Bool,
            AttributeType.MSTSConnectPrinterDrives => AttributeSyntax.Bool,
            AttributeType.MSTSDefaultToMainPrinter => AttributeSyntax.Bool,
            AttributeType.MSTSWorkDirectory => AttributeSyntax.UnicodeString,
            AttributeType.MSTSInitialProgram => AttributeSyntax.UnicodeString,
            AttributeType.MSTSEndpointData => AttributeSyntax.UnicodeString,
            AttributeType.MSTSEndpointType => AttributeSyntax.Int,
            AttributeType.MSTSEndpointPlugin => AttributeSyntax.UnicodeString,
            AttributeType.MSTSPrimaryDesktop => AttributeSyntax.DN,
            AttributeType.MSTSSecondaryDesktops => AttributeSyntax.DN,
            AttributeType.MSTSPrimaryDesktopBL => AttributeSyntax.DN,
            AttributeType.MSTSSecondaryDesktopBL => AttributeSyntax.DN,
            AttributeType.MSTSProperty01 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSProperty02 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSExpireDate => AttributeSyntax.Time,
            AttributeType.MSTSExpireDate2 => AttributeSyntax.Time,
            AttributeType.MSTSExpireDate3 => AttributeSyntax.Time,
            AttributeType.MSTSExpireDate4 => AttributeSyntax.Time,
            AttributeType.MSTSLicenseVersion => AttributeSyntax.UnicodeString,
            AttributeType.MSTSLicenseVersion2 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSLicenseVersion3 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSLicenseVersion4 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSManagingLS => AttributeSyntax.UnicodeString,
            AttributeType.MSTSManagingLS2 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSManagingLS3 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSManagingLS4 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSLSProperty01 => AttributeSyntax.UnicodeString,
            AttributeType.MSTSLSProperty02 => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRDisablePacketPrivacy => AttributeSyntax.Bool,
            AttributeType.MSDFSRDefaultCompressionExclusionFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSROnDemandExclusionFileFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSROnDemandExclusionDirectoryFilter => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSROptions2 => AttributeSyntax.Int,
            AttributeType.MSDFSRCommonStagingPath => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSRCommonStagingSizeInMb => AttributeSyntax.Int64,
            AttributeType.MSDFSRStagingCleanupTriggerInPercent => AttributeSyntax.Int,
            AttributeType.MSDFSCommentv2 => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSGenerationGUIDv2 => AttributeSyntax.OctetString,
            AttributeType.MSDFSLastModifiedv2 => AttributeSyntax.Time,
            AttributeType.MSDFSLinkIdentityGUIDv2 => AttributeSyntax.OctetString,
            AttributeType.MSDFSLinkPathv2 => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSLinkSecurityDescriptorv2 => AttributeSyntax.SecurityDescriptor,
            AttributeType.MSDFSNamespaceIdentityGUIDv2 => AttributeSyntax.OctetString,
            AttributeType.MSDFSPropertiesv2 => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSSchemaMajorVersion => AttributeSyntax.Int,
            AttributeType.MSDFSSchemaMinorVersion => AttributeSyntax.Int,
            AttributeType.MSDFSShortNameLinkPathv2 => AttributeSyntax.UnicodeString,
            AttributeType.MSDFSTargetListv2 => AttributeSyntax.OctetString,
            AttributeType.MSDFSTtlv2 => AttributeSyntax.Int,
            AttributeType.MSDSBridgeHeadServersUsed => AttributeSyntax.DNWithBinary,
            AttributeType.MSDSIsUsedAsResourceSecurityAttribute => AttributeSyntax.Bool,
            AttributeType.MSDSClaimPossibleValues => AttributeSyntax.UnicodeString,
            AttributeType.MSDSClaimValueType => AttributeSyntax.Int64,
            AttributeType.MSDSClaimAttributeSource => AttributeSyntax.DN,
            AttributeType.MSDSClaimTypeAppliesToClass => AttributeSyntax.DN,
            AttributeType.MSDSClaimSharesPossibleValuesWith => AttributeSyntax.DN,
            AttributeType.MSDSClaimSharesPossibleValuesWithBL => AttributeSyntax.DN,
            AttributeType.MSDSMembersOfResourcePropertyList => AttributeSyntax.DN,
            AttributeType.MSDSMembersOfResourcePropertyListBL => AttributeSyntax.DN,
            AttributeType.MSSPPCSVLKPid => AttributeSyntax.UnicodeString,
            AttributeType.MSSPPCSVLKPartialProductKey => AttributeSyntax.UnicodeString,
            AttributeType.MSSPPCSVLKSkuId => AttributeSyntax.OctetString,
            AttributeType.MSSPPKMSIds => AttributeSyntax.OctetString,
            AttributeType.MSSPPInstallationId => AttributeSyntax.UnicodeString,
            AttributeType.MSSPPConfirmationId => AttributeSyntax.UnicodeString,
            AttributeType.MSSPPOnlineLicense => AttributeSyntax.OctetString,
            AttributeType.MSSPPPhoneLicense => AttributeSyntax.OctetString,
            AttributeType.MSSPPConfigLicense => AttributeSyntax.OctetString,
            AttributeType.MSSPPIssuanceLicense => AttributeSyntax.OctetString,
            AttributeType.MSTPMSrkPubThumbprint => AttributeSyntax.OctetString,
            AttributeType.MSTPMOwnerInformationTemp => AttributeSyntax.UnicodeString,
            AttributeType.TPMInformationForComputer => AttributeSyntax.DN,
            AttributeType.TPMInformationForComputerBL => AttributeSyntax.DN,
            AttributeType.MSDNSKeymasterZones => AttributeSyntax.UnicodeString,
            AttributeType.MSDNSIsSigned => AttributeSyntax.Bool,
            AttributeType.MSDNSSignWithNSEC3 => AttributeSyntax.Bool,
            AttributeType.MSDNSNSEC3OptOut => AttributeSyntax.Bool,
            AttributeType.MSDNSMaintainTrustAnchor => AttributeSyntax.Int,
            AttributeType.MSDNSDSRecordAlgorithms => AttributeSyntax.Int,
            AttributeType.MSDNSRFC5011KeyRollovers => AttributeSyntax.Bool,
            AttributeType.MSDNSNSEC3HashAlgorithm => AttributeSyntax.Int,
            AttributeType.MSDNSNSEC3RandomSaltLength => AttributeSyntax.Int,
            AttributeType.MSDNSNSEC3Iterations => AttributeSyntax.Int,
            AttributeType.MSDNSDNSKEYRecordSetTTL => AttributeSyntax.Int,
            AttributeType.MSDNSDSRecordSetTTL => AttributeSyntax.Int,
            AttributeType.MSDNSSignatureInceptionOffset => AttributeSyntax.Int,
            AttributeType.MSDNSSecureDelegationPollingPeriod => AttributeSyntax.Int,
            AttributeType.MSDNSSigningKeyDescriptors => AttributeSyntax.OctetString,
            AttributeType.MSDNSSigningKeys => AttributeSyntax.OctetString,
            AttributeType.MSDNSDNSKEYRecords => AttributeSyntax.OctetString,
            AttributeType.MSDNSParentHasSecureDelegation => AttributeSyntax.Bool,
            AttributeType.MSDNSPropagationTime => AttributeSyntax.Int,
            AttributeType.MSDNSNSEC3UserSalt => AttributeSyntax.UnicodeString,
            AttributeType.MSDNSNSEC3CurrentSalt => AttributeSyntax.UnicodeString,
            AttributeType.MSAuthzEffectiveSecurityPolicy => AttributeSyntax.UnicodeString,
            AttributeType.MSAuthzProposedSecurityPolicy => AttributeSyntax.UnicodeString,
            AttributeType.MSAuthzLastEffectiveSecurityPolicy => AttributeSyntax.UnicodeString,
            AttributeType.MSAuthzResourceCondition => AttributeSyntax.UnicodeString,
            AttributeType.MSAuthzCentralAccessPolicyId => AttributeSyntax.Sid,
            AttributeType.MSAuthzMemberRulesInCentralAccessPolicy => AttributeSyntax.DN,
            AttributeType.MSAuthzMemberRulesInCentralAccessPolicyBL => AttributeSyntax.DN,
            AttributeType.MSDSClaimSource => AttributeSyntax.UnicodeString,
            AttributeType.MSDSClaimSourceType => AttributeSyntax.UnicodeString,
            AttributeType.MSDSClaimIsValueSpaceRestricted => AttributeSyntax.Bool,
            AttributeType.MSDSClaimIsSingleValued => AttributeSyntax.Bool,
            AttributeType.MSDSGenerationId => AttributeSyntax.OctetString,
            AttributeType.PrimaryComputer => AttributeSyntax.DN,
            AttributeType.MSDSIsPrimaryComputerFor => AttributeSyntax.DN,
            AttributeType.KdsKdfAlgorithmId => AttributeSyntax.UnicodeString,
            AttributeType.KdsKdfParameters => AttributeSyntax.OctetString,
            AttributeType.KdsSecretAgreementAlgorithmId => AttributeSyntax.UnicodeString,
            AttributeType.KdsSecretAgreementParameters => AttributeSyntax.OctetString,
            AttributeType.KdsSecretAgreementPublicKeyLength => AttributeSyntax.Int,
            AttributeType.KdsSecretAgreementPrivateKeyLength => AttributeSyntax.Int,
            AttributeType.KdsRootKeyData => AttributeSyntax.OctetString,
            AttributeType.KdsVersion => AttributeSyntax.Int,
            AttributeType.KdsDomainController => AttributeSyntax.DN,
            AttributeType.KdsEffectiveTime => AttributeSyntax.Int64,
            AttributeType.KdsCreationTime => AttributeSyntax.Int64,
            AttributeType.MSImagingThumbprintHash => AttributeSyntax.OctetString,
            AttributeType.MSImagingHashAlgorithm => AttributeSyntax.UnicodeString,
            AttributeType.MSDSAllowedToActOnBehalfOfOtherIdentity => AttributeSyntax.SecurityDescriptor,
            AttributeType.ManagedPasswordId => AttributeSyntax.OctetString,
            AttributeType.ManagedPasswordPreviousId => AttributeSyntax.OctetString,
            AttributeType.ManagedPasswordInterval => AttributeSyntax.Int,
            AttributeType.GroupMSAMembership => AttributeSyntax.SecurityDescriptor,
            AttributeType.MSDSGeoCoordinatesAltitude => AttributeSyntax.Int64,
            AttributeType.MSDSGeoCoordinatesLatitude => AttributeSyntax.Int64,
            AttributeType.MSDSGeoCoordinatesLongitude => AttributeSyntax.Int64,
            AttributeType.MSDSTransformationRules => AttributeSyntax.UnicodeString,
            AttributeType.MSDSIngressClaimsTransformationPolicy => AttributeSyntax.DN,
            AttributeType.MSDSEgressClaimsTransformationPolicy => AttributeSyntax.DN,
            AttributeType.MSDSTDOEgressBL => AttributeSyntax.DN,
            AttributeType.MSDSTDOIngressBL => AttributeSyntax.DN,
            AttributeType.MSDSTransformationRulesCompiled => AttributeSyntax.OctetString,
            AttributeType.MSDSAppliesToResourceTypes => AttributeSyntax.UnicodeString,
            AttributeType.MSDSRIDPoolAllocationEnabled => AttributeSyntax.Bool,
            AttributeType.CloudExtensionAttribute1 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute2 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute3 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute4 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute5 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute6 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute7 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute8 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute9 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute10 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute11 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute12 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute13 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute14 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute15 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute16 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute17 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute18 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute19 => AttributeSyntax.UnicodeString,
            AttributeType.CloudExtensionAttribute20 => AttributeSyntax.UnicodeString,
            AttributeType.IssuerCertificates => AttributeSyntax.OctetString,
            AttributeType.MSDSRegistrationQuota => AttributeSyntax.Int,
            AttributeType.MSDSMaximumRegistrationInactivityPeriod => AttributeSyntax.Int,
            AttributeType.DeviceLocation => AttributeSyntax.DN,
            AttributeType.RegisteredOwner => AttributeSyntax.OctetString,
            AttributeType.RegisteredUsers => AttributeSyntax.OctetString,
            AttributeType.ApproximateLastLogonTimeStamp => AttributeSyntax.Int64,
            AttributeType.MSDSIsEnabled => AttributeSyntax.Bool,
            AttributeType.DeviceOSType => AttributeSyntax.UnicodeString,
            AttributeType.DeviceOSVersion => AttributeSyntax.UnicodeString,
            AttributeType.DevicePhysicalIDs => AttributeSyntax.UnicodeString,
            AttributeType.DeviceId => AttributeSyntax.OctetString,
            AttributeType.DeviceObjectVersion => AttributeSyntax.Int,
            AttributeType.MSDSPreferredDataLocation => AttributeSyntax.UnicodeString,
            AttributeType.MSDSIssuerPublicCertificates => AttributeSyntax.OctetString,
            AttributeType.IsManaged => AttributeSyntax.Bool,
            AttributeType.CloudIsManaged => AttributeSyntax.Bool,
            AttributeType.MSDSCloudAnchor => AttributeSyntax.OctetString,
            AttributeType.MSDSCloudIssuerPublicCertificates => AttributeSyntax.OctetString,
            AttributeType.MSDSCloudIsEnabled => AttributeSyntax.Bool,
            AttributeType.SyncServerUrl => AttributeSyntax.UnicodeString,
            AttributeType.MSDSUserAllowedToAuthenticateTo => AttributeSyntax.OctetString,
            AttributeType.MSDSUserAllowedToAuthenticateFrom => AttributeSyntax.OctetString,
            AttributeType.MSDSUserTGTLifetime => AttributeSyntax.Int64,
            AttributeType.MSDSComputerAllowedToAuthenticateTo => AttributeSyntax.OctetString,
            AttributeType.MSDSComputerTGTLifetime => AttributeSyntax.Int64,
            AttributeType.MSDSServiceAllowedToAuthenticateTo => AttributeSyntax.OctetString,
            AttributeType.MSDSServiceAllowedToAuthenticateFrom => AttributeSyntax.OctetString,
            AttributeType.MSDSServiceTGTLifetime => AttributeSyntax.Int64,
            AttributeType.MSDSAssignedAuthNPolicySilo => AttributeSyntax.DN,
            AttributeType.MSDSAssignedAuthNPolicySiloBL => AttributeSyntax.DN,
            AttributeType.MSDSAuthNPolicySiloMembers => AttributeSyntax.DN,
            AttributeType.MSDSAuthNPolicySiloMembersBL => AttributeSyntax.DN,
            AttributeType.MSDSUserAuthNPolicy => AttributeSyntax.DN,
            AttributeType.MSDSUserAuthNPolicyBL => AttributeSyntax.DN,
            AttributeType.MSDSComputerAuthNPolicy => AttributeSyntax.DN,
            AttributeType.MSDSComputerAuthNPolicyBL => AttributeSyntax.DN,
            AttributeType.MSDSServiceAuthNPolicy => AttributeSyntax.DN,
            AttributeType.MSDSServiceAuthNPolicyBL => AttributeSyntax.DN,
            AttributeType.MSDSAssignedAuthNPolicy => AttributeSyntax.DN,
            AttributeType.MSDSAssignedAuthNPolicyBL => AttributeSyntax.DN,
            AttributeType.MSDSAuthNPolicyEnforced => AttributeSyntax.Bool,
            AttributeType.MSDSAuthNPolicySiloEnforced => AttributeSyntax.Bool,
            AttributeType.DeviceMDMStatus => AttributeSyntax.UnicodeString,
            AttributeType.ExternalDirectoryObjectId => AttributeSyntax.UnicodeString,
            AttributeType.MSDSIsCompliant => AttributeSyntax.Bool,
            AttributeType.KeyId => AttributeSyntax.OctetString,
            AttributeType.KeyMaterial => AttributeSyntax.OctetString,
            AttributeType.KeyUsage => AttributeSyntax.UnicodeString,
            AttributeType.KeyPrincipal => AttributeSyntax.DN,
            AttributeType.KeyPrincipalBL => AttributeSyntax.DN,
            AttributeType.DeviceDN => AttributeSyntax.UnicodeString,
            AttributeType.ComputerSId => AttributeSyntax.Sid,
            AttributeType.MSDSCustomKeyInformation => AttributeSyntax.OctetString,
            AttributeType.KeyApproximateLastLogonTimeStamp => AttributeSyntax.Int64,
            AttributeType.DeviceTrustType => AttributeSyntax.Int,
            AttributeType.ShadowPrincipalSid => AttributeSyntax.Sid,
            AttributeType.KeyCredentialLinkBL => AttributeSyntax.DN,
            AttributeType.MSDSExpirePasswordsOnSmartCardOnlyAccounts => AttributeSyntax.Bool,
            AttributeType.MSDSUserAllowedNTLMNetworkAuthentication => AttributeSyntax.Bool,
            AttributeType.MSDSServiceAllowedNTLMNetworkAuthentication => AttributeSyntax.Bool,
            AttributeType.MSDSStrongNTLMPolicy => AttributeSyntax.Int,
            AttributeType.SourceAnchor => AttributeSyntax.UnicodeString,
            AttributeType.MSDSObjectSOA => AttributeSyntax.UnicodeString,
            AttributeType.AddressBookRoots2 => AttributeSyntax.DN,
            AttributeType.GlobalAddressList2 => AttributeSyntax.DN,
            AttributeType.TemplateRoots2 => AttributeSyntax.DN,
            AttributeType.MSDSSupersededServiceAccountState => AttributeSyntax.Int,
            AttributeType.MSDSDelegatedMSAState => AttributeSyntax.Int,
            AttributeType.MSDSSupersededManagedAccountLink => AttributeSyntax.DN,
            AttributeType.MSDSSupersededManagedAccountLinkBL => AttributeSyntax.DN,
            AttributeType.MSDSManagedAccountPrecededByLink => AttributeSyntax.DN,
            AttributeType.MSDSManagedAccountPrecededByLinkBL => AttributeSyntax.DN,
            AttributeType.MSDSJetDBPageSize => AttributeSyntax.Int,
            // Could not translate
            _ => null
        };

        public static AttributeSearchFlags GetSearchFlags(this AttributeType attrtyp) => attrtyp switch
        {
            AttributeType.AccountExpires => AttributeSearchFlags.Copy,
            AttributeType.AltSecurityIdentities => AttributeSearchFlags.AttributeIndex,
            AttributeType.Assistant => AttributeSearchFlags.Copy,
            AttributeType.AttributeId => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.AttributeSyntax => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.BirthLocation => AttributeSearchFlags.AttributeIndex,
            AttributeType.CodePage => AttributeSearchFlags.Copy,
            AttributeType.COMClassId => AttributeSearchFlags.AttributeIndex,
            AttributeType.CommonName => AttributeSearchFlags.AttributeIndex,
            AttributeType.Company => AttributeSearchFlags.Copy,
            AttributeType.CountryCode => AttributeSearchFlags.Copy,
            AttributeType.Country => AttributeSearchFlags.Copy,
            AttributeType.Department => AttributeSearchFlags.Copy,
            AttributeType.DHCPType => AttributeSearchFlags.AttributeIndex,
            AttributeType.DisplayName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.Division => AttributeSearchFlags.Copy,
            AttributeType.DNReferenceUpdate => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.DnsRoot => AttributeSearchFlags.AttributeIndex,
            AttributeType.DnsTombstoned => AttributeSearchFlags.AttributeIndex,
            AttributeType.EmailAddresses => AttributeSearchFlags.AttributeIndex,
            AttributeType.EmployeeType => AttributeSearchFlags.Copy,
            AttributeType.FileExtPriority => AttributeSearchFlags.AttributeIndex,
            AttributeType.FlatName => AttributeSearchFlags.AttributeIndex,
            AttributeType.FromServer => AttributeSearchFlags.AttributeIndex,
            AttributeType.FSMORoleOwner => AttributeSearchFlags.AttributeIndex,
            AttributeType.GivenName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.GovernsId => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.GroupAttributes => AttributeSearchFlags.AttributeIndex,
            AttributeType.GroupType => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.HomeDirectory => AttributeSearchFlags.Copy,
            AttributeType.HomeDrive => AttributeSearchFlags.Copy,
            AttributeType.ImplementedCategories => AttributeSearchFlags.AttributeIndex,
            AttributeType.InstanceType => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.InvocationId => AttributeSearchFlags.AttributeIndex,
            AttributeType.IsRecycled => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.Keywords => AttributeSearchFlags.AttributeIndex,
            AttributeType.LastLogonTimestamp => AttributeSearchFlags.AttributeIndex,
            AttributeType.LdapDisplayName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.LegacyExchangeDN => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.LocaleId => AttributeSearchFlags.Copy,
            AttributeType.City => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.Copy,
            AttributeType.Location => AttributeSearchFlags.AttributeIndex,
            AttributeType.LogonHours => AttributeSearchFlags.Copy,
            AttributeType.LogonWorkstation => AttributeSearchFlags.Copy,
            AttributeType.MaximumStorage => AttributeSearchFlags.Copy,
            AttributeType.MSDSAdditionalSamAccountName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDSAzObjectGuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSCachedMembershipTimeStamp => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSCreatorSId => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSEntryTimeToDie => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.InternalId => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.PhoneticFirstName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.PhoneticLastName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.PhoneticDepartment => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.PhoneticCompanyName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.PhoneticDisplayName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.MSDSHABSeniorityIndex => AttributeSearchFlags.AttributeIndex,
            AttributeType.SiteAffinity => AttributeSearchFlags.AttributeIndex,
            AttributeType.SecondaryKrbTgtNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDFSRDfsPath => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDFSRReplicationGroupGuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.FVERecoveryPassword => AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy | AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.FVEVolumeGuid => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.ContainerIndex | AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy,
            AttributeType.FVEKeyPackage => AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy | AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.FVERecoveryGuid => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.ContainerIndex | AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy,
            AttributeType.TPMOwnerInformation => AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy | AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.MSPKICertTemplateOid => AttributeSearchFlags.AttributeIndex,
            AttributeType.PKIRoamingTimeStamp => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.MSRADIUSFramedInterfaceId => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSSavedFramedInterfaceId => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSFramedIpv6Prefix => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSSavedFramedIpv6Prefix => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSFramedIpv6Route => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSSavedFramedIpv6Route => AttributeSearchFlags.Copy,
            AttributeType.MSSQLName => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSQLVersion => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSQLDatabase => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSQLAlias => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSMQDigests => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSMQLabel => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSMQLabelEx => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSMQOwnerId => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSMQQueueType => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSNPAllowDialin => AttributeSearchFlags.Copy,
            AttributeType.MSNPCallingStationId => AttributeSearchFlags.Copy,
            AttributeType.MSNPSavedCallingStationId => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSCallbackNumber => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSFramedIPAddress => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSFramedRoute => AttributeSearchFlags.Copy,
            AttributeType.MSRADIUSServiceType => AttributeSearchFlags.Copy,
            AttributeType.MSRASSavedCallbackNumber => AttributeSearchFlags.Copy,
            AttributeType.MSRASSavedFramedIPAddress => AttributeSearchFlags.Copy,
            AttributeType.MSRASSavedFramedRoute => AttributeSearchFlags.Copy,
            AttributeType.NamingContextName => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.NetBIOSName => AttributeSearchFlags.AttributeIndex,
            AttributeType.NetbootGuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.NetbootDuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.SecurityDescriptor => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.DistinguishedName => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.ObjectCategory => AttributeSearchFlags.AttributeIndex,
            AttributeType.ObjectClass => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.ObjectGuid => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.ObjectSid => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.OMSyntax => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.OMTIndxGuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.OrganizationalUnitName => AttributeSearchFlags.AttributeIndex,
            AttributeType.OtherLoginWorkstations => AttributeSearchFlags.Copy,
            AttributeType.PackageFlags => AttributeSearchFlags.AttributeIndex,
            AttributeType.Office => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.PhysicalLocationObject => AttributeSearchFlags.AttributeIndex,
            AttributeType.PostOfficeBox => AttributeSearchFlags.Copy,
            AttributeType.PostalAddress => AttributeSearchFlags.Copy,
            AttributeType.PostalCode => AttributeSearchFlags.Copy,
            AttributeType.PreferredOU => AttributeSearchFlags.Copy,
            AttributeType.PrimaryGroupId => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.Copy,
            AttributeType.ProfilePath => AttributeSearchFlags.Copy,
            AttributeType.ProxyAddresses => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.RDN => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.ReplicationPropertyMetaData => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.RequiredCategories => AttributeSearchFlags.AttributeIndex,
            AttributeType.RIDSetReferences => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.RpcNsInterfaceId => AttributeSearchFlags.AttributeIndex,
            AttributeType.RpcNsObjectId => AttributeSearchFlags.AttributeIndex,
            AttributeType.RpcNsTransferSyntax => AttributeSearchFlags.AttributeIndex,
            AttributeType.SamAccountName => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.SamAccountType => AttributeSearchFlags.AttributeIndex,
            AttributeType.ScriptPath => AttributeSearchFlags.Copy,
            AttributeType.ServiceClassName => AttributeSearchFlags.AttributeIndex,
            AttributeType.ServicePrincipalName => AttributeSearchFlags.AttributeIndex,
            AttributeType.ShowInAddressBook => AttributeSearchFlags.Copy,
            AttributeType.ShowInAdvancedViewOnly => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.Copy,
            AttributeType.SidHistory => AttributeSearchFlags.AttributeIndex,
            AttributeType.State => AttributeSearchFlags.Copy,
            AttributeType.StreetAddress => AttributeSearchFlags.Copy,
            AttributeType.SubClassOf => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.Surname => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.AmbiguousNameResolution,
            AttributeType.SystemFlags => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.TerminalServer => AttributeSearchFlags.AttributeIndex,
            AttributeType.TextCountry => AttributeSearchFlags.Copy,
            AttributeType.TimeVolumeChange => AttributeSearchFlags.AttributeIndex,
            AttributeType.TrustPartner => AttributeSearchFlags.AttributeIndex,
            AttributeType.Uid => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.UNCName => AttributeSearchFlags.AttributeIndex,
            AttributeType.UserAccountControl => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete | AttributeSearchFlags.Copy,
            AttributeType.UserPrincipalName => AttributeSearchFlags.AttributeIndex,
            AttributeType.UserWorkstations => AttributeSearchFlags.Copy,
            AttributeType.USNChanged => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.USNCreated => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.USNIntersite => AttributeSearchFlags.AttributeIndex,
            AttributeType.VolumeTableIndexGuid => AttributeSearchFlags.AttributeIndex,
            AttributeType.UnixUserPassword => AttributeSearchFlags.Confidential,
            AttributeType.UidNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.GidNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30MasterServerName => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30OrderNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30Name => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30NisDomain => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSSFU30Domains => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30YpServers => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30MaxGidNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30MaxUidNumber => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30NetgroupHostAtDomain => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30NetgroupUserAtDomain => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSFU30IsValidContainer => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSProperty01 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSProperty02 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSExpireDate => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSExpireDate2 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSExpireDate3 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSExpireDate4 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLicenseVersion => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLicenseVersion2 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLicenseVersion3 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLicenseVersion4 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSManagingLS => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSManagingLS2 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSManagingLS3 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSManagingLS4 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLSProperty01 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTSLSProperty02 => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSSPPKMSIds => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSTPMSrkPubThumbprint => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.ContainerIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSTPMOwnerInformationTemp => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.MSDNSIsSigned => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSSignWithNSEC3 => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3OptOut => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSMaintainTrustAnchor => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSDSRecordAlgorithms => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSRFC5011KeyRollovers => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3HashAlgorithm => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3RandomSaltLength => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3Iterations => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSDNSKEYRecordSetTTL => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSDSRecordSetTTL => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSSignatureInceptionOffset => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSSecureDelegationPollingPeriod => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSSigningKeyDescriptors => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSSigningKeys => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSDNSKEYRecords => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSParentHasSecureDelegation => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSPropagationTime => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3UserSalt => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.MSDNSNSEC3CurrentSalt => AttributeSearchFlags.PreserveOnDelete,
            AttributeType.KdsKdfAlgorithmId => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsKdfParameters => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsSecretAgreementAlgorithmId => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsSecretAgreementParameters => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsSecretAgreementPublicKeyLength => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsSecretAgreementPrivateKeyLength => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsRootKeyData => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsVersion => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsDomainController => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsEffectiveTime => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.KdsCreationTime => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.MSDSGeoCoordinatesAltitude => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSGeoCoordinatesLatitude => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSGeoCoordinatesLongitude => AttributeSearchFlags.AttributeIndex,
            AttributeType.MSDSTransformationRulesCompiled => AttributeSearchFlags.Confidential,
            AttributeType.CloudExtensionAttribute1 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute2 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute3 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute4 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute5 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute6 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute7 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute8 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute9 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute10 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute11 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute12 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute13 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute14 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute15 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute16 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute17 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute18 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute19 => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudExtensionAttribute20 => AttributeSearchFlags.AttributeIndex,
            AttributeType.IssuerCertificates => AttributeSearchFlags.Confidential,
            AttributeType.RegisteredOwner => AttributeSearchFlags.AttributeIndex,
            AttributeType.RegisteredUsers => AttributeSearchFlags.AttributeIndex,
            AttributeType.ApproximateLastLogonTimeStamp => AttributeSearchFlags.AttributeIndex,
            AttributeType.DeviceOSType => AttributeSearchFlags.AttributeIndex,
            AttributeType.DeviceOSVersion => AttributeSearchFlags.AttributeIndex,
            AttributeType.DevicePhysicalIDs => AttributeSearchFlags.AttributeIndex,
            AttributeType.DeviceId => AttributeSearchFlags.AttributeIndex,
            AttributeType.DeviceObjectVersion => AttributeSearchFlags.AttributeIndex,
            AttributeType.IsManaged => AttributeSearchFlags.AttributeIndex,
            AttributeType.CloudIsManaged => AttributeSearchFlags.AttributeIndex,
            AttributeType.SyncServerUrl => AttributeSearchFlags.AttributeIndex,
            AttributeType.ExternalDirectoryObjectId => AttributeSearchFlags.AttributeIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.KeyId => AttributeSearchFlags.AttributeIndex,
            AttributeType.ComputerSId => AttributeSearchFlags.AttributeIndex,
            AttributeType.KeyApproximateLastLogonTimeStamp => AttributeSearchFlags.AttributeIndex,
            AttributeType.ShadowPrincipalSid => AttributeSearchFlags.AttributeIndex,
            AttributeType.SourceAnchor => AttributeSearchFlags.ContainerIndex | AttributeSearchFlags.PreserveOnDelete,
            AttributeType.IsMemberOfDL => AttributeSearchFlags.Copy,
            AttributeType.Manager => AttributeSearchFlags.Copy,
            AttributeType.PKICredentialRoamingTokens => AttributeSearchFlags.Confidential,
            AttributeType.PKIDPAPIMasterKeys => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.PKIAccountCredentials => AttributeSearchFlags.Confidential | AttributeSearchFlags.RODCFilteredAttribute,
            AttributeType.TPMInformationForComputer => AttributeSearchFlags.Copy,
            AttributeType.PrimaryComputer => AttributeSearchFlags.AttributeIndex,
            // Could not translate, so return the default value
            _ => AttributeSearchFlags.None
        };

        public static string DeriveColumnName(this AttributeType attrtyp, AttributeSyntax syntax)
        {
            char infix = syntax.GetCode();

            // Convert ATTRTYP from uint to int (signed)
            int suffix = unchecked((int)attrtyp);

            // Example: ATTm3 or ATTq-2145478421
            return $"ATT{infix}{suffix}";
        }

        public static char GetCode(this AttributeSyntax syntax) => syntax switch
        {
            AttributeSyntax.DN => 'b',
            AttributeSyntax.Oid => 'c',
            AttributeSyntax.CaseExactString => 'd',
            AttributeSyntax.CaseIgnoreString => 'e',
            AttributeSyntax.String => 'f',
            AttributeSyntax.NumericString => 'g',
            AttributeSyntax.DNWithBinary => 'h',
            AttributeSyntax.Bool => 'i',
            AttributeSyntax.Int => 'j',
            AttributeSyntax.OctetString => 'k',
            AttributeSyntax.Time => 'l',
            AttributeSyntax.UnicodeString => 'm',
            AttributeSyntax.PresentationAddress => 'n',
            AttributeSyntax.DNWithString => 'o',
            AttributeSyntax.SecurityDescriptor => 'p',
            AttributeSyntax.Int64 => 'q',
            AttributeSyntax.Sid => 'r',
            _ => throw new ArgumentOutOfRangeException("Unsupported attribute syntax", nameof(syntax))
        };

        public static string DeriveIndexName(this AttributeType attrtyp)
        {
            string suffix = DeriveIndexSuffix(attrtyp);

            // Example: INDEX_000904E1
            return $"INDEX_{suffix}";
        }

        public static string DeriveContainerizedIndexName(this AttributeType attrtyp)
        {
            string suffix = DeriveIndexSuffix(attrtyp);
            // Example: INDEX_P_000904E1
            return $"INDEX_P_{suffix}";
        }

        public static string DeriveTupleIndexName(this AttributeType attrtyp)
        {
            string suffix = DeriveIndexSuffix(attrtyp);
            // Example: INDEX_T_000904E1
            return $"INDEX_T_{suffix}";
        }

        public static string DeriveSubtreeIndexName(this AttributeType attrtyp)
        {
            string suffix = attrtyp.DeriveIndexSuffix();
            // Example: INDEX_S_000904E1
            return $"INDEX_S_{suffix}";
        }

        private static string DeriveIndexSuffix(this AttributeType attrtyp)
        {
            Span<byte> binaryValue = stackalloc byte[sizeof(AttributeType)];
            BinaryPrimitives.WriteUInt32BigEndian(binaryValue, (uint)attrtyp);
            return binaryValue.ToHex(caps: true);
        }

        /// <summary>
        /// Indicates if the ATTRTYP maps to an OID via the prefix table.
        /// </summary>
        public static bool IsCompressedOid(this AttributeType attrtyp) => attrtyp <= AttributeType.LastCompressedOid;

        /// <summary>
        /// Indicates if the ATTRTYP is used as a value of the msDS-IntId attribute.
        /// </summary>
        public static bool IsInternalId(this AttributeType attrtyp) => attrtyp >= AttributeType.FirstInternalId && attrtyp <= AttributeType.LastInternalId;
    }
}
